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

时间:2012-10-24 08:55:57

标签: java xml

我知道问题Failing to get element values using Element.getAttribute(),但因为我是java begginer,我还有其他问题。我想要构建的是简单的应用程序,它将读取XML文件,然后将其与“黄金大师”进行比较。我的问题是:

  • 我有很多不同的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,但我不知道如何以编程方式迭代它

是的,我知道这听起来很像“做我的作业”,但我真正需要的是至少小屁股,让我朝着正确的方向前进。谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

方法item(int index)应该有助于遍历属性:

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