[英]Copy All Elements inside the Node but not the node tag in XML using java
[英]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.