Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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文件_Java_Xml_Parsing - Fatal编程技术网

Java 正在尝试解析XML文件

Java 正在尝试解析XML文件,java,xml,parsing,Java,Xml,Parsing,问题是它检索了3次listColumns,因此显示了dataItemLabel的refDataItem3次,但我只需要它一次 有人能帮我如何只检索一次吗?节点列表[0]是数组节点列表中的第一个元素。要引用数组的第一个元素,请使用: nodeList = document.getElementsByTagName("listColumns"); getListColumnsNodes(nodeList); 另一种方法是使用唯一的元素id: getListColumnsNo

问题是它检索了3次listColumns,因此显示了dataItemLabel的refDataItem3次,但我只需要它一次

有人能帮我如何只检索一次吗?

节点列表[0]是数组节点列表中的第一个元素。要引用数组的第一个元素,请使用:

nodeList = document.getElementsByTagName("listColumns");
            getListColumnsNodes(nodeList);
另一种方法是使用唯一的元素id:

getListColumnsNodes(nodeList[0]);

nodeList=document.getElementById(“foo”);
以下是有关使用数组和获取元素的一些信息:


这不是有效的XML,某些标记未关闭。如果XML中有3倍的dataItemLabel,则您将收到3倍的dataItemLabel!请重新格式化您的XML;任何东西都必须左右滚动。这是一个有效的XML。我已经展示了其中一些我面临困难的标签。这是输入Cognos文件,我的程序将其转换为SSRS文件作为输出。我无法更改输入XML文件我无法这样做…因为我将所有这些都作为一个输入文件,对于每个文件,可能会有不同的场景。而且我甚至不能改变输入文件…我需要一些通用的解决方案。。不过还是要感谢……所以请使用“getListColumnsNodes(nodeList[0]);”来引用第一个具有匹配标记的元素?这样,只会打印一个值。我想这正是您在说“仅检索一次”时想要的。
getListColumnsNodes(nodeList[0]);
<listColumns id="foo">
nodeList = document.getElementById("foo");