我有这个RSS解析包含几个标签。我能够为除描述标记节点之外的所有值检索值(子元素)。请在下面找到rss feed
<fflag>0</fflag>
<tflag>0</tflag>
<ens1:org>C Opera Production</ens1:org>
−
<description>
<p>Opera to be announced</p>
<p>$15 adults/$12 seniors/$10 for college students<span style="white-space: pre;"> </span></p>
</description>
我正在使用的代码是
StringBuffer descriptionAccumulator = new StringBuffer();
else if (property.getNodeName().equals("description")){
try{
String desc = (property.getFirstChild().getNodeValue());
if(property.getNodeName().equals("p")){
descriptionAccumulator.append(property.getFirstChild().getNodeValue());
}
}
catch(Exception e){
Log.i(tag, "No desc");
}
else if (property.getNodeName().equals("ens1:org")){
try{
event.setOrganization(property.getFirstChild().getNodeValue());
Log.i(tag,"org"+(property.getFirstChild().getNodeValue()));
}
catch(Exception e){
}
else if (property.getNodeName().equals("area")||property.getNodeName().equals("fflag") || property.getNodeName().equals("tflag") || property.getNodeName().equals("guid")){
try{
//event.setOrganization(property.getFirstChild().getNodeValue());
Log.i(tag,"org"+(property.getFirstChild().getNodeValue()));
}
catch(Exception e){
}
else if(property.getNodeName().equals("p") || property.getNodeName().equals("em") || property.getNodeName().equals("br") || property.getNodeName().startsWith("em") || property.getNodeName().startsWith("span") || property.getNodeName().startsWith("a") || property.getNodeName().startsWith("div") || property.getNodeName().equals("div") || property.getNodeName().startsWith("p")){
descriptionAccumulator.append(property.getFirstChild().getNodeValue());
descriptionAccumulator.append(".");
System.out.println("description added:"+descriptionAccumulator);
Log.i("Description",descriptionAccumulator+property.getFirstChild().getNodeValue());
}
我尝试捕获<description>
标记的值,但该dint工作了,所以我尝试使用所有常用的html格式标记,但仍然没有出路。使用任何其他解析器不是一个选项。有些人可以帮我解决这个问题。感谢
答案 0 :(得分:1)
我相信rss xml的smth是错误的。例如,检查StackOverflow rss feed返回的xml。特别注意<summary type="html">
节点内容的样子 - 它内部没有子xml节点,只有纯xml转义文本。因此,如果在您的情况下它是可接受的 - 花费在正确的rss xml生成上而不是修复后果。
答案 1 :(得分:0)
您正在将其解析为xml,因此description标签没有字符串值,它有多个子节点。您可能会尝试获取描述节点并将其打印出来。有关打印到XML的信息,请参阅LSSerializer。