XML -разбор свойств метаданных с помощью DOM - PullRequest
0 голосов
/ 13 апреля 2020

Нужна кто-то помощь в разборе этого примера ниже. Мне нужно получить, например, значение свойства "Exchange". Очень признателен. Al.

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>

1 Ответ

0 голосов
/ 15 апреля 2020

попробуйте следующее решение,

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
...