簡體   English   中英

獲取特定節點內的所有元素

[英]Get all elements inside a specific node

我是XML解析的新手,迷路了。 首先,這是我的XML:

<?xml version="1.0" encoding="UTF-8"?>
<menu>
    <data>
        <food type="none">
            <price>100</price>
        </food>
        <food type="none">
            <price>50</price>
        </food>
    </data>

    <trash>
        <food type="none" id="1"/>
        <food type="none" id="2"/>
    </trash>
</menu>

我正在嘗試解析此XML。 我想把所有食物都放入數據中

當我做:

NodeList nUsines = doc.getElementsByTagName("food");

我也把食物放在垃圾桶里 ,但是我不要。

抱歉,如果我的問題沒有解決,我不知道XML的正確術語

到目前為止,我的代碼(在方法內):

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document doc = builder.parse(file.getPath());
    doc.getDocumentElement().normalize();

    NodeList nUsines = doc.getElementsByTagName("food");

謝謝

您的代碼完全按照您的要求執行。

您需要一個更具體的查詢,例如data元素內的food元素。

您可以嘗試選擇data元素,然后在其中專門查詢food元素。

或者,查找XPath,您將很快找到另一種方法。

使用XPath(只是選項之一):

XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile("//data/food");

System.out.println(((NodeList)expr.evaluate(doc, XPathConstants.NODESET)).getLength());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM