Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 在给定多个条件的情况下,使用XPath返回一个属性_Xml_Xpath - Fatal编程技术网

Xml 在给定多个条件的情况下,使用XPath返回一个属性

Xml 在给定多个条件的情况下,使用XPath返回一个属性,xml,xpath,Xml,Xpath,我正在尝试检索元素的一个(并且只有一个)匹配项 /Document/docOf/serviceEvent/effectiveTime/@value 当 /Document/docOf/tempId/@root="1.3.5" docOf元素可以以任何顺序出现,但不能保证那些具有受欢迎的tempId的元素是xml中的第一个元素 我一直在尝试将position()函数与tempId/@root=“1.3.5”结合使用 但是发现它并没有按照我所希望的方式工作。如果我写 tempId/@root=

我正在尝试检索元素的一个(并且只有一个)匹配项

/Document/docOf/serviceEvent/effectiveTime/@value 

/Document/docOf/tempId/@root="1.3.5"
docOf元素可以以任何顺序出现,但不能保证那些具有受欢迎的tempId的元素是xml中的第一个元素

我一直在尝试将position()函数与tempId/@root=“1.3.5”结合使用 但是发现它并没有按照我所希望的方式工作。如果我写

tempId/@root="1.3.5" and position()=1 
我得到了正确的结果,但只有当tempId/@root=“1.3.5”元素出现在具有其他tempId的元素之前时,才会得到正确的结果。如何从具有正确tempId/@root的元素中检索effectiveTime/@值并只检索一次

<Document>
    <docOf>
        <tempId root="1.3.2"codeSystem="11.2.3"/>
        <serviceEvent>
            <code code="UXZX0A"/>
        </serviceEvent>
    </docOf>
    <docOf>
        <tempId root="1.3.5"/>
        <serviceEvent classCode="ACT">
            <effectiveTime value="20101122145613+0100"/>
        </serviceEvent>
    </docOf>
    <docOf>
        <tempId root="1.3.5"/>
        <serviceEvent classCode="ACT">
            <effectiveTime value="20101122145613+0100"/>
        </serviceEvent>
    </docOf>
    <docOf>
        <tempId root="1.3.2"/>
        <serviceEvent>
            <code code="UXZX0A" codeSystem="11.2.3"/>
        </serviceEvent>
    </docOf>
</Document>

试试:


它首先获取root=1.3.5的所有文档,然后从该集中选择第一个节点。然后从中提取
属性。

谢谢!我想你有什么发现。我现在的问题是将其转换为StyleVision中的输入,StyleVision是我使用的图形工具:S
/Document/docOf[tempId/@root='1.3.5'][1]/serviceEvent/effectiveTime/@value