首页 > 解决方案 > XML - 使用 DOM 解析元数据属性

问题描述

需要有人帮助解析下面的这个例子。例如,我需要获取“Exchange”属性的值。非常感激。铝。

XML 内容,

<?xml version="1.0" encoding="UTF-8"?>
<History>
   <Metadata>
      <MetadataType FormalName="Keywords" />
      <Property FormalName="CategoryKeywords" Value="Photo/Multimedia" />
      <Property FormalName="CountryKeywords" Value="UK" />
      <Property FormalName="RegKeywrd" Value="Europe" />
   </Metadata>
   <Metadata>
      <MetadataType FormalName="Securities Id" />
      <Property FormalName="Ticker Symbol" Value="ABC" />
      <Property FormalName="Exchange" Value="London" />
   </Metadata>
</History>

标签: javaxmlparsingdom

解决方案


尝试以下解决方案,

public class DomParser {

   public static void main(String[] args) {

      try {
         File inputFile = new File("Test.xml");
         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
         Document document = dBuilder.parse(inputFile);
         document.getDocumentElement().normalize();
         NodeList nodeList = document.getElementsByTagName("Property");

         for (int temp = 0; temp < nodeList.getLength(); temp++) {
            Node node = nodeList.item(temp);

            if (node.getNodeType() == Node.ELEMENT_NODE) {
               Element element = (Element) node;
               System.out.println("Property (FormalName) : " + element.getAttribute("FormalName") + 
                                  ", Value : " + element.getAttribute("Value"));
            }
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

输出,

Property (FormalName) : CategoryKeywords, Value : Photo/Multimedia
Property (FormalName) : CountryKeywords, Value : UK
Property (FormalName) : RegKeywrd, Value : Europe
Property (FormalName) : Ticker Symbol, Value : ABC
Property (FormalName) : Exchange, Value : London

推荐阅读