正在解析<;内部属性的XML;!android中java DOM中的CData[---]]
我有这样一个xml文件:正在解析<;内部属性的XML;!android中java DOM中的CData[---]],java,android,xml,android-studio,xml-parsing,Java,Android,Xml,Android Studio,Xml Parsing,我有这样一个xml文件: <content:encoded> <![CDATA[ <p>Some Data</p> <p> <img class="aligncenter size-large wp-image-4525" src="https://www.website.com/image1.jpg" alt="cover2" width="810" height="422" srcset="https:
<content:encoded>
<![CDATA[
<p>Some Data</p>
<p>
<img class="aligncenter size-large wp-image-4525" src="https://www.website.com/image1.jpg" alt="cover2" width="810" height="422" srcset="https://www.website.com/image2.jpg"/>
Some Data
</p>
]]> //end of CData
</content:encoded>
一些数据
一些数据
]]>//CData结束
我有这个安卓代码:
private void ProcessXml(Document data) {
if(data!=null){
ArrayList<FeedItem>feedItems=new ArrayList<>();
Element root=data.getDocumentElement();
Node channel=root.getChildNodes().item(1);
NodeList items=channel.getChildNodes();
for(int i=0;i<items.getLength();i++)
{
Node currentchild=items.item(i);
if(currentchild.getNodeName().equalsIgnoreCase("item")){
FeedItem item=new FeedItem();
NodeList itemchilds=currentchild.getChildNodes();
for(int j=0;j<itemchilds.getLength();j++)
{
Node current=itemchilds.item(j);
if(current.getNodeName().equalsIgnoreCase("title")){
item.setTitle(current.getTextContent());
}else if (current.getNodeName().equalsIgnoreCase("description")) {
item.setDescription(current.getTextContent());
}else if (current.getNodeName().equalsIgnoreCase("pubDate")) {
item.setPubDate(current.getTextContent());
}else if (current.getNodeName().equalsIgnoreCase("link")) {
item.setLink(current.getTextContent());
}else if (current.getNodeName().equalsIgnoreCase("content:encoded")) {
//What code should I write here to get the image source/link of image.
}
}
}
feedItems.add(item);
}
}
}
}
private void ProcessXml(文档数据){
如果(数据!=null){
ArrayListfeedItems=新的ArrayList();
元素根=data.getDocumentElement();
节点通道=root.getChildNodes()。项(1);
NodeList items=channel.getChildNodes();
对于(int i=0;iCDATA标记告诉XML解析器将内容视为纯文本。因此,如果您不想将其视为文本,而想将其视为XML,那么您必须将内容提取为文本,然后将其提交给另一轮XML解析。CDATA部分被设计为不透明的字节序列…它们不应该e进一步解析…所以我真的看不到一个简单的方法来使用DOM解析器来做到这一点…您是否考虑过使用正则表达式对CDATA内容进行模式匹配?