我有这种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标准不支持默认名称空间的声明。

10-06 09:41