我有XML:
<?xml version='1.0' encoding='UTF-8'?>
<ClinicalDocument xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns='urn:hl7-org:v3'
xmlns:ext='urn:hl7-RU-EHR:v1'
xsi:schemaLocation='urn:hl7-org:v3'>
<author>
<time value='20160809000000+0300'/>
<assignedAuthor>
<id root='1.2.643.5.1.13.3.25.1.1.100.1.1.70' extension='1'/>
<id root='1.2.643.100.3' extension='03480134121'/>
<id nullFlavor='NI'/>
</assignedAuthor>
</author>
</ClinicalDocument>
我必须在extension
中id
获得root
1.2.643.100.3
的值= *[name()='ClinicalDocument']/*[name()='author']/*[name()='assignedAuthor']/*[name()='id' and @id='1.2.643.100.3']/@extension
。
我必须使用XPath 2.0。
我试过了:
/*[name()='ClinicalDocument']/*[name()='author']/*[name()='assignedAuthor']/*[name()='id'][2]/@extension
。不工作id
,但id
s的顺序可以
混合。那么,我应该通过else context.arc(0, 0, r0, a10, a00, cw);
的值我需要通过Java的XPathExpression检索价值
答案 0 :(得分:1)
首先,将名称空间前缀u:
绑定到urn:hl7-org:v3
。
然后,这个XPath,
//u:id[@root='1.2.643.100.3']/@extension
将根据要求返回03480134121
。
如果您无法绑定名称空间前缀,则可以改为使用此XPath,
//*[local-name() ='id' and @root='1.2.643.100.3']/@extension
也会根据要求返回03480134121
。
答案 1 :(得分:0)
更正XPath:/*[name()='ClinicalDocument']/*[name()='author']/*[name()='assignedAuthor']/*[local-name()='id' and @root='1.2.643.100.3']/@extension