使用JAVA解析RSS源时处理CDATA

问题描述:

我遵循Vogella的教程,使用JAVA解析RSS源。代码很简单,我能够使它工作。 问题是一些节点即时解析有CDATA,我得到空字符串(基于解析器的实现方式)。使用JAVA解析RSS源时处理CDATA

总之,我的问题是,有没有简单的方法来修改这个实现来处理CDATA?

Vogella RSS Parser

它处理CDATA,解析器不幸的是,光看第一行后返回值,所以在类似案例

<description> 
    <![CDATA[ 
    Lorem ipsum.. 
    ]]> 
</description> 

它不会读,直到元素的结束。您应该RSSFeedParser.getCharacterData方法改变这样的事情:

private String getCharacterData(XMLEvent event, XMLEventReader eventReader) 
     throws XMLStreamException { 
    StringBuilder result = new StringBuilder(); 
    while (!(event = eventReader.nextEvent()).isEndElement()) { 
     if (event instanceof Characters) { 
      result.append(event.asCharacters().getData()); 
     } 
    } 
    return result.toString(); 
} 

现在描述标签的内容将是“\ nLorem存有.. \ n”个