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

Java 获取xml元素节点的文本内容,java,xml,Java,Xml,我正在尝试获取此XML中第一个节点的文本内容。第一个节点(免赔额)是一个元素节点,当我得到文本内容时,我得到的是“日历年$1500$1500$3000”,而不是“日历年” 日历年 $1,500 $1,500 $3,000 $3,000 这就是我正在尝试的 dbuilder = dbc.newDocumentBuilder(); Document doc = dbuilder.parse(new InputSource(new StringReader(plan.getProvisions())

我正在尝试获取此XML中第一个节点的文本内容。第一个节点(免赔额)是一个元素节点,当我得到文本内容时,我得到的是“日历年$1500$1500$3000”,而不是“日历年”

日历年
$1,500
$1,500
$3,000
$3,000
这就是我正在尝试的

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();
    }
}
dbuilder=dbc.newDocumentBuilder();
Document doc=dbuilder.parse(新的InputSource(新的StringReader(plan.getProvisions()));
NodeList nl=doc.getElementsByTagName(“项目”);
对于(int i=0;i
如果根标记是
请发布您正在使用的代码。看起来您正在选择所有子节点以及免赔额,但如果没有更多信息,则无法确定。另外,您的XML示例不完整(无结束/免赔额),我不认为它不完整。您的XML格式良好,但内容混合,即类型为免赔额的Item元素同时包含文本和其他Item元素。这是故意的吗?@corriganjc-Yes..这是故意的,可能我无法更改。在这种情况下,您必须获取Item元素的第一个子节点,并调用getNodeValue()或getTextContent()来获取@khachik.doc.getDocumentElement().getTextContent()的答案中所述的文本;仍将获取所有文本,因为具有“可扣除”属性的项包含其他项元素。它们的文本也属于项目[@type='justible']。
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();
    }
}