我有这种XML:
<?xml version="1.0" encoding="UTF-8"?>
<documentAnswer xmlns="http://schemas.pkh.hr/doc/2013/documents/rda_30" domainName="rda" domainVersion="3.0">
<answerTimestamp>2013-08-21T13:35:25.894</answerTimestamp>
<correct>
<docId>RDA2_29F81D27-1409BE49E2E-7FF8</docId>
<attachments>
<attachment>
<format>application/pdf</foraat>
<generatedType>StampanNaBlanko</generatedType>
<encodedPdf>JVBERiYKJSVFT0YK</encodedPdf>
</attachment>
</attachments>
</correct>
这些附件标签可以是一个或多个。我正在尝试使用Java获取附件标签的NodeIterator
XPathAPI.selectNodeIterator(node,
“ / documentAnswer /正确/附件/附件”)
然后进行迭代,但是我没有成功。我猜测问题出在xpath中,并且它与名称空间有关,但不知道如何解决。我尝试了这种xpath,但没有成功:
XPathAPI.selectNodeIterator(node,
“ / rda:documentAnswer /更正/附件/附件”,“ rda”,
“ http://schemas.pkh.hr/doc/2013/documents/rda_30”)
最佳答案
/rda:documentAnswer/correct/attachments/attachment
在这里,您仅将
rda
命名空间分配给根元素,但是在XML中将其声明为默认命名空间。因此,所有元素都在该命名空间中。您必须使用/rda:documentAnswer/rda:correct/rda:attachments/rda:attachment
不幸的是,XPath标准不支持默认名称空间的声明。