Java 如何从xml解析器获取属性值-Android
示例xmlJava 如何从xml解析器获取属性值-Android,java,android,Java,Android,示例xml <item> <title>Lorem ipsum</title> <description> <![CDATA[ <img src="http://lorem.ipsum.com/lib/sample.jpg" align="left" hspace="5" width="100"/>lorem ipsum dolor sit amet........ ]]> <
<item>
<title>Lorem ipsum</title>
<description>
<![CDATA[ <img src="http://lorem.ipsum.com/lib/sample.jpg" align="left" hspace="5" width="100"/>lorem ipsum dolor sit amet........ ]]>
</description>
<date>....</date>
</item>
乱数假文
....
如何使用XMLPullParser从img标记部分获取src值我用它来提取文本值。正如@Selvin所说,
部分不是XML本身的一部分,因为它是在CDATA部分中转义的(顺便说一下,这是一个奇怪的XML)
您可以做的最简单的事情是通过第一次解析获得description
节点。然后,获取其文本值,并使用第二个解析器对其进行解析,然后读取属性
这只是第一种方法:您必须首先确保:
内容是格式良好的XML。如果没有,这种方法是无用的说明
仅包含一个XML节点。如果不是,则必须在第二次解析之前将其包含在虚拟根节点中: 字符串newXml=“说明
”+CDATA内容+” ”
DocumentBuilderFactory fectory=DocumentBuilderFactory.newInstance();
DocumentBuilder=fectory.newDocumentBuilder();
InputStream InputStream=new ByteArrayInputStream((“+”此处获取您的描述标记:例如messages.get(i).getDescription()“+”).getBytes(“UTF-8”);
Document=builder.parse(inputStream);
字符串imageURL=document.getElementsByTagName(“img”).item(0.getAttributes().getNamedItem(“src”).getNodeValue();
您不能<代码>img标记不是xml的一部分,因为它存储为字符数据。。。您可以尝试解析描述的值,但它看起来不是有效的xml…我需要图像源url,但解析值不包含任何标记,只包含纯文本。是否有其他方法提取所有字符或标记@塞尔文
DocumentBuilderFactory fectory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = fectory.newDocumentBuilder();
InputStream inputStream = new ByteArrayInputStream(("<data>" + "here get ur description tag:eg. messages.get(i).getDescription()" + "</data>").getBytes("UTF-8"));
Document document = builder.parse(inputStream);
String imageURL = document.getElementsByTagName("img").item(0).getAttributes().getNamedItem("src").getNodeValue();