[ 
https://issues.apache.org/jira/browse/TIKA-1373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14073042#comment-14073042
 ] 

Hong-Thai Nguyen commented on TIKA-1373:
----------------------------------------

HtmlParser skips tags generated by JHighlight. I found a solution by using 
directly TagSoup Parser. Commit in r1613051.
As I mentioned in TIKA-1224, this parser is quick & dirty approach to parser 
source code file. Again, the _right_ one parser is must have dedicate parser by 
language and parse deeply elements and build events on-the-fly.

> AutoDetectParser extracts no text when SourceCodeParser is selected
> -------------------------------------------------------------------
>
>                 Key: TIKA-1373
>                 URL: https://issues.apache.org/jira/browse/TIKA-1373
>             Project: Tika
>          Issue Type: Bug
>    Affects Versions: 1.5
>            Reporter: Andrés Aguilar-Umaña
>
> When using the AutoDetectParser in java code, and the SourceCodeParser is 
> selected (i.e. java files), the handler gets no text:
> I have this test program:
> {code}
>     String data = "public class HelloWorld {}";
>     ByteArrayInputStream bais = new ByteArrayInputStream(data.getBytes());
>     Parser autoDetectParser = new AutoDetectParser();
>     BodyContentHandler bch = new BodyContentHandler(50);
>     ParseContext parseContext = new ParseContext();
>     Metadata metadata = new Metadata();
>     metadata.set(Metadata.CONTENT_TYPE, "text/x-java-source");
>     try {
>        autoDetectParser.parse(bais, bch, metadata, parseContext);
>     } catch (Exception e) {
>        e.printStackTrace();
>     }
>     System.out.println("Text extracted: "+bch.toString())
> {code}
> It returns (using the SourceCodeParser): 
>     {code} > Text extracted: {code}
> But when I use this code:
> {code}
>     String data = "public class HelloWorld {}";
>     ByteArrayInputStream bais = new ByteArrayInputStream(data.getBytes());
>     Parser autoDetectParser = new AutoDetectParser();
>     BodyContentHandler bch = new BodyContentHandler(50);
>     ParseContext parseContext = new ParseContext();
>     Metadata metadata = new Metadata();
>     metadata.set(Metadata.CONTENT_TYPE, "text/plain");
>     try {  autoDetectParser.parse(bais, bch, metadata, parseContext);  } 
> catch (Exception e) {  e.printStackTrace();  }
>     System.out.println("Text extracted: "+bch.toString())
> {code}
> The Text Parser is used and I get:
> {code} > Text extracted: public class HelloWorld {} {code}
> I have also tested this command: 
> {code}
> > java -jar tika-app-1.5.jar -t D:\text.java
>   (no text)
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to