1
//* [ local-name()='component' and namespace-uri()='urn:hl7-org:v3'   ] 

このパスを使用すると、次のようなノードを取得できます:</ p>

<?xml version="1.0" encoding="utf-8"?>
<ClinicalDocument xmlns="urn:hl7-org:v3">
<component>
    <structuredBody> 
      <component>
          <section>
          <code code="10164-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
          <title>History of Present Illness</title>
          <text>
          </text>
          </section>
      </component>
    <component>     ......      </component>
    <component>     ......      </component>
</structuredBody>
</component>
</ClinicalDocument>

以下のようにノードを取得するには:

<component>
        <section>
        <code code="10164-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
        <title>History of Present Illness</title>
        <text>
        </text>
        </section>
    </component>

パスを次のように変更します:

//* [ local-name()='component' and namespace-uri()='urn:hl7-org:v3'  and  position()=1] 

[code="10164-2"]しかし、資格として使用して同じ結果を得るにはどうすればよいですか?

2012年12月17日編集

//:component[1]//:component[.//:section/:code[@code='10164-2']]

このxpathはうまく機能し、必要なノードを取得できます。使用する場合はどうすればよいですか

// * [local-name()='component'およびnamespace-uri()='urn:hl7-org:v3'])[1]

<component/>ノードを選択し、述語部分に[@ code = '10164-2']を追加して、必要な<component/>子ノードを取得します。(名前空間の問題を回避するために、パスで:を使用したくない)

4

2 に答える 2

1

使用

      ((//*[local-name()='component'
         and namespace-uri()='urn:hl7-org:v3']
       )[1]
          //*[local-name()='component'
            and
              namespace-uri()='urn:hl7-org:v3'
             ]
      )[1]

XSLTベースの検証

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/">
     <xsl:copy-of select=
     "((//*[local-name()='component'
         and namespace-uri()='urn:hl7-org:v3']
     )[1]
        //*[local-name()='component'
            and
              namespace-uri()='urn:hl7-org:v3']
     )[1]
     "/>
 </xsl:template>
</xsl:stylesheet>

この変換が提供されたXMLドキュメントに適用される場合:

<component xmlns="urn:hl7-org:v3">
    <structuredBody>
      <component>
          <section>
          <code code="10164-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
          <title>History of Present Illness</title>
          <text>
          </text>
          </section>
      </component>
    <component>     ......      </component>
    <component>     ......      </component>
</structuredBody>
</component>

XPath式が評価され、この評価の結果が出力にコピーされます。

<component xmlns="urn:hl7-org:v3">
   <section>
      <code code="10164-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
      <title>History of Present Illness</title>
      <text/>
   </section>
</component>
于 2012-12-14T19:13:51.777 に答える