Java 用撇号解析XML
以BBC新闻RSS提要为例,其中一条新闻如下:Java 用撇号解析XML,java,xml,Java,Xml,以BBC新闻RSS提要为例,其中一条新闻如下: <item><title>Pupils 'bullied on sports field'</title><description>bla bla.. 完全相同的代码用于解析其他元素,如description和pubDate等,这些元素都很好 这是getCharacterDataFromElement方法: public static String getCharacterDataFromEleme
<item><title>Pupils 'bullied on sports field'</title><description>bla bla..
完全相同的代码用于解析其他元素,如description和pubDate等,这些元素都很好
这是getCharacterDataFromElement方法:
public static String getCharacterDataFromElement(Element e) {
Node child = ((Node) e).getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
return cd.getData();
}
return "";
}
我做错了什么?我使用DocumentBuilder、DocumentBuilderFactory和org.w3c.dom来处理RSS提要。您的getCharacterDataFromElement只查看第一个子元素-查看是否还有其他子元素,并将所有文本固定在一起
HTH-DF好吧,好吧,撇号是XML中的保留字符,因此应该编码为
&apos代码>
这意味着BBC新闻RSS提要没有提供格式良好的XML
最好是向BBC新闻RSS源提供商发布错误报告,以便他们修复它。正如davidfrancis建议的那样,您应该迭代getCharacterDataFromElement()中的所有子项。
或者,如果可以使用DOM级别3,则可以使用实现所需功能的方法
NodeList title = element.getElementsByTagName("title");
Element line = (Element)title.item(0);
tmp.setTitle(line.getTextContent());
NodeList title = element.getElementsByTagName("title");
Element line = (Element)title.item(0);
tmp.setTitle(line.getTextContent());