Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从xml解析器获取属性值-Android_Java_Android - Fatal编程技术网

Java 如何从xml解析器获取属性值-Android

Java 如何从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........ ]]> <

示例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........ ]]> 
    </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();