1

値を抽出する必要がある XDocument に読み込まれた xml ファイルがあり、最適な方法がわかりません。私が考えていることのほとんどは、やり過ぎであるか、xml ルールをうまく利用していないようです。次の xml スニペットがあります。

    <entry>
      <observation classCode="OBS" moodCode="EVN">
        <templateId root="2.16.840.1.113883.10.20.6.2.12" />
        <code code="121070" codeSystem="1.2.840.10008.2.16.4" codeSystemName="DCM" displayName="Findings">
        </code>
        <value xsi:type="ED">
          <reference value="#121071">
          </reference>
        </value>
      </observation>
    </entry>

ノードはいくつでも存在でき<entry>、それらはすべて同様のパターンに従います。要素のroot属性の下の値には、このエントリが必要なエントリであることを識別する既知の UID が含まれています。templateId基準値を取得する必要があります。

私の考えでは、正しい templateID ノードを見つけ、観察ノードに戻り<valuexsi:type="ED">、参照値を見つけて取得します。これは非常に複雑に思えますが、これを行う別の方法があるかどうか疑問に思っています。

編集

受け取った xml には、同じノード名の下にネストされた xml が含まれていることがあります。つまり、<observation>という名前の別のノードの下にある可能性があります<observation>

4

3 に答える 3

0

次の行に沿って何かが役立ちますか?

   XDocument xdoc = GetYourDocumentHere();
   var obsvlookfor =
       xdoc.Root.Descendants("observation")
           .SingleOrDefault(el => 
                el.Element("templateId")
                    .Attribute("root").Value == "root value to look for");

   if (obsvlookfor != null)
   {
       var reference = obsvlookfor
           .Element("value")
           .Element("reference").Attribute("value").Value;
   }

私の考えは次のとおりです。

  1. ドキュメント内のすべての観測要素を引き出す
  2. 観測のtemplateId要素がroot探している属性を持つ唯一のもの (または null) を見つけます
  3. その観測要素を見つけたら、要素の下にある要素valueに対して属性を引き出します。referencevalue
于 2013-04-19T00:13:32.600 に答える