获取xml元素节点的文本内容

时间:2010-11-10 19:24:38

标签: java xml

我正在尝试获取此XML中第一个节点的文本内容。第一个节点(Deductible)是一个元素节点,当我得到文本内容时,我得到“Calendar Year $ 1,500 $ 1,500 $ 3,000”而不是“Calendar Year”

<Item type="Deductible" name="Deductible" id="a">Calendar Year
<Item type="Text" name="Individual" id="b">$1,500</Item>
<Item type="Text" name="Individual Out-of-network" id="id_4">$1,500</Item>
<Item type="Text" name="Family" id="c">$3,000</Item>
<Item type="Text" name="Family Out-of-network:" id="id_5">$3,000</Item>
</Item>

这就是我正在尝试的

dbuilder = dbc.newDocumentBuilder();
Document doc = dbuilder.parse(new InputSource(new StringReader(plan.getProvisions())));
NodeList nl = doc.getElementsByTagName("Item");
for(int i = 0 ; i < nl.getLength(); i++){
    if(i == row){
      org.w3c.dom.Element e = (org.w3c.dom.Element)nl.item(i);
      value = e.getTextContent();
    }
}

1 个答案:

答案 0 :(得分:3)

如果根标记是<Item type="Deductible" ...,您可以执行doc.getDocumentElement().getChildNodes().item(0).getNodeValue();

否则,您可以检查type属性值,以检测从Item获取的节点列表中的getElementsByTagName("Item");元素。

我会使用Java(1.5) XPath API来选择Item/@type='Deductible'元素。