Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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 - Fatal编程技术网

如何在java中读取带有属性的xml文件?

如何在java中读取带有属性的xml文件?,java,xml,Java,Xml,我知道这个问题,但因为我是java begginer,所以我还有其他问题。我试图构建的是一个简单的应用程序,它将读取XML文件,然后将其与“golden master”进行比较。我的问题是: 我有很多不同的XML文件,它们的属性不同 XML文件相对较大。(810行文件-肉眼难以检查) 文件示例: <DocumentIdentification v="Unique_ID"/> <DocumentVersion v="1"/> <DocumentType

我知道这个问题,但因为我是java begginer,所以我还有其他问题。我试图构建的是一个简单的应用程序,它将读取XML文件,然后将其与“golden master”进行比较。我的问题是:

  • 我有很多不同的XML文件,它们的属性不同
  • XML文件相对较大。(810行文件-肉眼难以检查)
文件示例:

  <DocumentIdentification v="Unique_ID"/>
  <DocumentVersion v="1"/>
  <DocumentType v="P81"/>
  <SenderIdentification v="TEST-001--123456" codingScheme="A01"/>
  <CreationDateTime v="2012-10-15T13:00:00Z"/>
  <InArea v="10STS-TST------W" codingScheme="A01"/>
  <OutArea v="10YWT-AYXOP01--8" codingScheme="A01"/>
  <TimeSeries>
<Period>
 <TimeInterval v="2012-10-14T22:00Z/2012-10-15T22:00Z"/>
   <Resolution v="PT15M"/>
        <Interval>
            <Pos v="1"/>
            <Qty v="500"/>
        </Interval>
        <Interval>
            <Pos v="2"/>
            <Qty v="500"/>
        </Interval>
        <Interval>
            <Pos v="3"/>
                            <Qty v="452"/>
                    </Interval>
                     ...
                     ...
                    <Interval>
            <Pos v="96"/>
                            <Qty v="891"/>
                    </Interval>
               </Period>   
        </TimeSeries>

...
...
应用上述问题的解决方案并不能让我走得更远。。。我意识到我可以将属性转换为
NamedNodeMap
,但我不知道如何通过编程进行迭代

是的,我知道这听起来很像“做我的家庭作业”,但我真正需要的是至少一点小小的打击,让我朝着正确的方向前进。感谢您的帮助

方法
项(int index)
应该有助于迭代属性:

NamedNodeMap map = getItFromSomeWhere();
int i = 0;
while ((Node node = map.item(i++)) != null) {
   // node is ith node in the named map
}

比较这两个文件的目的到底是什么?根据您需要实现的具体目标,您可能会更轻松地完成任务。我的想法是:读取文件并与预期值进行比较:尤其是带有InArea和OutArea的位,SenderIdentification-这些代码特定于每个文件,并且对于该名称应该是唯一的。在这种情况下,您可以按照Andreas_D的建议,从doing node.getAttributes()获取namedNodeMap,然后使用getNamedItem(“v”)获取属性Who Own Watson。。。我现在觉得自己完全哑巴了:)只是另外一个问题-如果我这样做
node.toString()
它会打印dontent吗?(哑巴)我打赌您正在查找
节点#getNodeValue
,它将是属性值(如果节点是属性)<代码>节点#getNodeName是属性名称。