2012-12-19 19 views
0

我解析XML諾阿,看起來像這樣:分析和比較XML的標記文字讓兄弟姐妹

<time-layout time-coordinate="local" summarization="12hourly"> 
<layout-key>k-p12h-n14-1</layout-key> 
<start-valid-time period-name="Tonight">2012-12-18T18:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Wednesday">2012-12-19T06:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Wednesday Night">2012-12-19T18:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Thursday">2012-12-20T06:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Thursday Night">2012-12-20T18:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Friday">2012-12-21T06:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Friday Night">2012-12-21T18:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Saturday">2012-12-22T06:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Saturday Night">2012-12-22T18:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Sunday">2012-12-23T06:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Sunday Night">2012-12-23T18:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Monday">2012-12-24T06:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Monday Night">2012-12-24T18:00:00-08:00</start-valid-time> 
<start-valid-time period-name="Christmas Day">2012-12-25T06:00:00-08:00</start-valid-time> 
</time-layout> 

有文檔中的其它標籤,但我想K-p12h-n14-1標籤。

我如何才能獲得period-name =「*」作爲k-p12h-n14-1之後的週期名稱?

這裏是一個FULL XML FILE EXAMPLE

我曾嘗試使用弄明白:

List<XmlDom> wxday = xml.tags("time-layout","time-coordinate","summarization"); 
String wxd = wxday.child("layout-key"); 
String wxdd = wxday.equals("k-p12h-n14-1"); 
kind of lost.... 

感謝您的任何想法。

回答

2

您可以使用下面的代碼:

File fXmlFile = new File("MapClick.php.xml"); 
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
    Document doc = dBuilder.parse(fXmlFile); 

    Element rootElement = doc.getDocumentElement(); 

    NodeList nodeList = rootElement.getElementsByTagName("layout-key"); 
    int size = nodeList.getLength(); 

    for (int i = 0; i < size; i++) { 
     Node currentNode = nodeList.item(i); 

     if (currentNode.getTextContent().trim().equals("k-p12h-n14-1")) { 
      while (currentNode.getNextSibling() != null) { 
       currentNode = currentNode.getNextSibling(); 

       if (currentNode.getNodeName().equals("start-valid-time")) { 
        System.out.println(((Element)currentNode).getAttribute("period-name")); 
       } 
      } 
     } 
    }