从复杂的空元素解析XML属性

比诺伊·巴布

我在以下模式中有一个xml文件,其中包含一些Complex Empty Elements(元素不包含内容,仅包含属性)。

<items>
    <item id="0" name="a" />
    <item id="1" name="b" />
</items>

我不敢解析它们的属性。到目前为止,这是我所做的:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(inputStream);
Element itemsElement = document.getDocumentElement();
if (itemsElement.getTagName().equals(TAG_ITEMS)) {
    NodeList nodeList = itemsElement.getChildNodes();
    for (int i = 0; i < nodeList.getLength(); i++) {
        // process each item node
        Node node = nodeList.item(i);
        if (node.getNodeType() == Node.TEXT_NODE) { // Is this the right way?
            Text text = (Text) node;
            // Do stuff with attributes
        }
    }
}

我无法将这些Text节点强制转换为Element节点并获取属性,我无法使用getAttributes-NPE从节点获取节点的属性NamedNodeMap attributes.getLength(),也无法将其强制转换为Text获取属性。如何解析属性?

A4L

您对内部节点的文本上下文不感兴趣,items但对节点的属性感兴趣item您可以按照以下步骤操作:

//process each item node
Node node = nodeList.item(i);
if (node.getNodeName().equals("item")) {
    NamedNodeMap attributes = node.getAttributes();
    System.out.printf("id=%s, name=%s%n", 
            attributes.getNamedItem("id").getTextContent(),
            attributes.getNamedItem("name").getTextContent());
}

这将打印:

id=0, name=a
id=1, name=b

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从复杂的空元素解析XML属性

来自分类Dev

如何从DOM解析XML中的空元素中提取属性值?

来自分类Dev

解析XML文件时检查空属性

来自分类Dev

使用PHP解析XML元素和属性

来自分类Dev

按属性解析子元素(XML,Python)

来自分类Dev

使用xslt基于属性迭代XML中的复杂元素

来自分类Dev

空简单元素和空复杂元素之间的区别-XML

来自分类Dev

解析复杂嵌套的 XML

来自分类Dev

无法解析带有属性的空xml属性

来自分类Dev

无法解析带有属性的空xml属性

来自分类Dev

XML将元素和元素属性解析为数组

来自分类Dev

解析复杂的XML,选择命名元素时不存在任何后代元素

来自分类Dev

XML DOM解析器:所有元素的空值

来自分类Dev

如何解析复杂的xml

来自分类Dev

使用PHP解析复杂的XML

来自分类Dev

使用JSoup解析复杂的xml

来自分类Dev

复杂的XML解析到标签

来自分类Dev

如何解析复杂的xml

来自分类Dev

使用XmlPullParser解析复杂的XML

来自分类Dev

Excel vba 解析复杂的 XML

来自分类Dev

XML C# 解析 - 复杂

来自分类Dev

在 JAVA 中解析复杂的 XML

来自分类Dev

Golang:解析组的XML元素值和属性

来自分类Dev

如何解析xml并获取元素上某些属性的向量

来自分类Dev

Android如何解析XML获取属性和元素

来自分类Dev

使用PowerShell解析XML:使用属性获取元素的值

来自分类Dev

复杂xml文件的Java XML解析

来自分类Dev

如何使用JAXB将复杂的XML元素映射到Java类属性

来自分类Dev

XML根元素解析