Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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 如何使用domxml解析器对XML文档进行parese_Java_Dom - Fatal编程技术网

Java 如何使用domxml解析器对XML文档进行parese

Java 如何使用domxml解析器对XML文档进行parese,java,dom,Java,Dom,我有一个如下所示的xml文档: <travellingSalesmanProblemInstance> <name>blabla</name> <source>TSPLIBRARY</source> <description>52 locations in Nowhere</description> <doublePrecision>15</doublePreci

我有一个如下所示的xml文档:

<travellingSalesmanProblemInstance>
    <name>blabla</name>
    <source>TSPLIBRARY</source>
    <description>52 locations in Nowhere</description>
    <doublePrecision>15</doublePrecision>
    <ignoredDigits>5</ignoredDigits>

    <graph>
        <vertex>
            <edge cost="6.661080993352356e+02">1</edge>
            <edge cost="2.811138559374119e+02">2</edge>
            <edge cost="3.956008088970497e+02">3</edge>
            <edge cost="2.912043955712207e+02">4</edge>
        </vertex>
        <vertex>
            <edge cost="2.561080993352356e+02">0</edge>
            <edge cost="2.711138559374119e+02">2</edge>
            <edge cost="6.556008088970497e+02">3</edge>
            <edge cost="7.9112043955712207e+02">4</edge>
        </vertex>
        ...
    </graph>
</travellingSalesmanProblemInstance>

布拉布拉
茨普里布雷里
无处可寻的52个地点
15
5.
1.
2.
3.
4.
0
2.
3.
4.
...
我试图读取这个xml文件。但我失败了

我使用以下内容浏览所有标记:

NodeList nList = doc.getElementsByTagName("vertex");
for (int i = 0; i < nList.getLength(); i++) 
{
NodeList nList=doc.getElementsByTagName(“顶点”);
对于(int i=0;i
但是如何获得这些标记中的所有元素

谢谢!!

可能吧

for(..){
    NodeList edges = nList.get(i).getElementsByTagName("edge");
    for(Node edge: edges){
        // do something with the edge
    }
}

未测试,但应该是这样的

只需使用结果列表中的每个节点进行另一次选择

NodeList nList = doc.getElementsByTagName("vertex");
NodeList edgeList;

// For each vertex, get all "edge" children
for (int i = 0; i < nList.getLength(); i++)  {
    edgeList = ((Element)nList.item(i)).getElementsByTagName("edge");

    // For each edge under this vertex, do something
    for (int j = 0; j < edgeList.getLength(); j++) {

        // test that it works
        System.out.println(edgeList.item(j).getTextContent());
    }
}
NodeList nList=doc.getElementsByTagName(“顶点”);
节点主义边缘主义者;
//对于每个顶点,获取所有“边”子对象
对于(int i=0;i