Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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 获取的子节点太多,无法获取属性_Java_Xml_Parsing - Fatal编程技术网

Java 获取的子节点太多,无法获取属性

Java 获取的子节点太多,无法获取属性,java,xml,parsing,Java,Xml,Parsing,我有一个简单的XML,我想得到属性。网上有一些例子,但我仍然不明白为什么我只看到4个,却得到17个。我甚至试着计算我认为文本可能出现的位置,但我仍然没有得到那个数字,除非是输出的长度。这导致我不知道如何获取所有Tag3的属性名 <?xml version="1.0" encoding="UTF-8"?> <tag1 xmlns="something"> <xxxxxx-Set> <tag3 Name="a"/>

我有一个简单的XML,我想得到属性。网上有一些例子,但我仍然不明白为什么我只看到4个,却得到17个。我甚至试着计算我认为文本可能出现的位置,但我仍然没有得到那个数字,除非是输出的长度。这导致我不知道如何获取所有Tag3的属性名

<?xml version="1.0" encoding="UTF-8"?>
<tag1 xmlns="something">
    <xxxxxx-Set>
        <tag3 Name="a"/>
        <tag3 Name="b"/>
        <tag3 Name="c"/>
        <tag3 Name="d"/>
    </xxxxxx-Set>
    <tagB>
        <tag3 Name="a"/>
        <tag3 Name="b"/>
        <tag3 Name="c"/>
        <tag3 Name="d"/>
    </tagB>
</tag1>

如果您想使用所有
名称
属性(最好用小写字母命名),请使用下一种方法:

Element xSet = (Element) doc.getElementsByTagName("xxxxxx-Set").item(0);
NodeList xSetTags = xSet.getElementsByTagName("tag3");

for(int i = 0; i < xSetTags.getLength(); i++)    {
    Element tag3 = (Element) xSetTags.item(i);
    System.out.println(tag3.getAttribute("Name"));
}
Element xSet=(Element)doc.getElementsByTagName(“xxxxxx-Set”)。项(0);
NodeList xSetTags=xSet.getElementsByTagName(“tag3”);
对于(int i=0;i

我使用
org.w3c.dom.Element
类创建了它。使用它不是最好的方法,因为这个类不仅表示xml元素,还表示属性、注释和其他元素。查看文档以了解
节点
元素
类之间的区别。

为什么xml中有这么多“”?替换
系统.out.println(tagAs)
to
System.out.println(tagAs.item(i).getNodeName())
并找出一些关于Xml中节点的有趣信息。很抱歉,这些额外信息是一个错误。或额外的项目之前。我已经看到了关于文本元素的内容,我想这就是这里的内容。有没有办法绕过它,或者只是打印一些奇怪的?有没有办法绕过文本标记,原因是我没有得到所有的tag3,但首先我得到了xxxxxx-SET,因为我以后在文档上使用了tag3,我不想在这里得到它。
[xxxxxx-Set: null]
0
[xxxxxx-Set: null]
1
...
[xxxxxx-Set: null]
16
Element xSet = (Element) doc.getElementsByTagName("xxxxxx-Set").item(0);
NodeList xSetTags = xSet.getElementsByTagName("tag3");

for(int i = 0; i < xSetTags.getLength(); i++)    {
    Element tag3 = (Element) xSetTags.item(i);
    System.out.println(tag3.getAttribute("Name"));
}