我有XML的XPath,其结构类似于
<Statement xsi:type="conditionStatement">
<Id>CONDITION_0001</Id>
<Bounds>
<xValue>13</xValue>
<yValue>145</yValue>
<Height>402</Height>
<Width>513</Width>
</Bounds>
.........
.........
</statement>
Xpath将我带到xsi:type。但是当我试图得到节点的名称是“语句”时,它会变为空。
我的代码是: -
nodeList = (NodeList) xPath.compile(xPathSrcFile).evaluate(xmlDocument, XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); i++) {
nodeList.item(i).getParentNode();
}
对于其他情况,代码工作得很好但是当它到达“xsi”时,代码抛出了nullpointer异常。
需要一些帮助才能从中获取节点名称。
答案 0 :(得分:0)
试试这个
NodeList nodeList = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputStream inputStream= new FileInputStream(file);//xmlDocument as file
Reader reader = new InputStreamReader(inputStream,"ISO-8859-1");
InputSource is = new InputSource(reader);
is.setEncoding("ISO-8859-1");
Document doc = db.parse(is);
Element docEle = doc.getDocumentElement();
nodeList = docEle.getElementsByTagName("Statement");
答案 1 :(得分:0)
1您的XML文件不正确:
以Statement
开头以/ statement
结尾2你需要在root标签:
&LT; root xmlns:xsi =&#34; http://www.w3.org/2001/XMLSchema-instance" &GT;
3获取你的标签名称,使用: nodeList.item(ⅰ).getTagName();
4你的Xpath是什么?