1

次の例を考えます。

<?xml version="1.0" encoding="UTF-8"?>
<Patients>
  <patientRole>
    <id extension="996-756-495" root="2.16.840.1.113883.19.5"/>
    <id extension="775-756-495" root="2.16.840.1.113883.14.6"/>
    <patient>
      <name>
        <given>Henry</given>
        <family>Levin</family>
      </name>
      <administrativeGenderCode code="M" codeSystem="2.16.840.1.113883.5.1"/>
      <birthTime value="19320924"/>
    </patient>
    <providerOrganization>
      <id root="2.16.840.1.113883.19.5"/>
      <name>Good Health Clinic</name>
    </providerOrganization>
    <admissionTime value="2012030111:32"/>
  </patientRole>
  <patientRole>
    <id extension="65" root="2.16.840.1.113883.3.933"/>
    <patient>
      <name>
        <given>Paul</given>
        <family>Pappel</family>
      </name>
      <administrativeGenderCode code="M" codeSystem="2.16.840.1.113883.5.1"/>
      <birthTime value="19551217"/>
    </patient>
    <providerOrganization>
      <id extension="84756-11241-283-OPTD-3322" root="1.2.3.4.5.6.1.8.9.0"/>
      <name> Dr.med. Hans Topp-Glucklich</name>
    </providerOrganization>
    <admissionTime value="201201152200"/>
  </patientRole>
  <patientRole>
    <id extension="800001" root="2.16.840.1.113883.19.5"/>
    <patient>
      <name>
        <given>JEANNE</given>
        <family>PETIT</family>
      </name>
      <administrativeGenderCode code="F" codeSystem="2.16.840.1.113883.5.1"/>
      <birthTime value="19480105"/>
    </patient>
    <providerOrganization>
      <id root="2.16.840.1.113883.19.5"/>
      <name>Good Health Clinic</name>
    </providerOrganization>
    <admissionTime value="20120101T22:00"/>
  </patientRole>
</Patients>

以下を行うには、それぞれの xpath 式を見つける必要があります。

私は XML/Xpath を初めて使用し、かなりの数の式を試しましたが、必要なものがまったく得られません。

  1. 2 つの ID を持つ患者の患者要素ノード

  2. 2012年1月に「グッドヘルスクリニック」に入院した患者数:

これで私はそれを生成しようと/Patients/patientRole[providerOrganization/name='Good Health Clinic' and substring(admissionTime/@value,1,6)='201201']しましたが、私が取り組んでいるウェブサイトはその提出を受け入れないので、おそらくそれほど複雑ではない式を生成する別の式があるかどうか疑問に思っています.

ありがとう、

4

1 に答える 1

1

私は必要なものをまったく手に入れることができません。

  1. 2 つの ID を持つ患者の患者要素ノード

使用:

/*/*[id[2]]/patient

. . .

  1. 2012年1月に「グッドヘルスクリニック」に入院した患者数:

使用:

count(/*/*[starts-with(admissionTime/@value, '201201')]/patient)

XSLT ベースの検証:

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

 <xsl:template match="/">
  <xsl:copy-of select="/*/*[id[2]]/patient"/>
  =====
  <xsl:value-of select=
  "count(/*/*[starts-with(admissionTime/@value, '201201')]/patient)"/>
 </xsl:template>
</xsl:stylesheet>

この変換が提供された XML ドキュメントに適用されると、次のようになります。

<Patients>
    <patientRole>
        <id extension="996-756-495" root="2.16.840.1.113883.19.5"/>
        <id extension="775-756-495" root="2.16.840.1.113883.14.6"/>
        <patient>
            <name>
                <given>Henry</given>
                <family>Levin</family>
            </name>
            <administrativeGenderCode code="M" codeSystem="2.16.840.1.113883.5.1"/>
            <birthTime value="19320924"/>
        </patient>
        <providerOrganization>
            <id root="2.16.840.1.113883.19.5"/>
            <name>Good Health Clinic</name>
        </providerOrganization>
        <admissionTime value="2012030111:32"/>
    </patientRole>
    <patientRole>
        <id extension="65" root="2.16.840.1.113883.3.933"/>
        <patient>
            <name>
                <given>Paul</given>
                <family>Pappel</family>
            </name>
            <administrativeGenderCode code="M" codeSystem="2.16.840.1.113883.5.1"/>
            <birthTime value="19551217"/>
        </patient>
        <providerOrganization>
            <id extension="84756-11241-283-OPTD-3322" root="1.2.3.4.5.6.1.8.9.0"/>
            <name> Dr.med. Hans Topp-Glucklich</name>
        </providerOrganization>
        <admissionTime value="201201152200"/>
    </patientRole>
    <patientRole>
        <id extension="800001" root="2.16.840.1.113883.19.5"/>
        <patient>
            <name>
                <given>JEANNE</given>
                <family>PETIT</family>
            </name>
            <administrativeGenderCode code="F" codeSystem="2.16.840.1.113883.5.1"/>
            <birthTime value="19480105"/>
        </patient>
        <providerOrganization>
            <id root="2.16.840.1.113883.19.5"/>
            <name>Good Health Clinic</name>
        </providerOrganization>
        <admissionTime value="20120101T22:00"/>
    </patientRole>
</Patients>

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

<patient>

   <name>

      <given>Henry</given>

      <family>Levin</family>

   </name>

   <administrativeGenderCode code="M" codeSystem="2.16.840.1.113883.5.1"/>

   <birthTime value="19320924"/>

</patient>
  =====
  2
于 2013-04-01T04:28:20.580 に答える