读取XML枚举没有结果

时间:2019-02-22 23:45:18

标签: linq linq-to-xml

我有以下C#代码从XML文件读取值。但是当我扩展结果时,它说“枚举没有结果”

问题

  1. 这是什么问题?
  2. 如何解决此问题?
  3. 如何读取“家庭”元素的值

注意:我已经在堆栈溢出和其他论坛中看到了类似的问题,并且已经尝试了建议。

C#

        XElement doc = XElement.Load(@"Test.xml");
        XNamespace ns = "urn:hl7-org:v3";
        IEnumerable<XElement> childList = from el in doc.Elements() select el;

        IEnumerable<XElement> result = childList.Elements(ns+ "assignedPerson");

XML

<?xml version="1.0" encoding="UTF-8"?>
<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:sdtc="urn:hl7-org:sdtc" xmlns:xs="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fn="http://www.w3.org/2005/xpath-functions" >
  <realmCode code="US"/>
  <typeId root="2.16.840.1.1" extension="POCD_HD000040"/>
  <languageCode code="en-US"/>
  <author>
    <time value="334455"/>
    <assignedAuthor>
      <id root="2.16.840.1.113883" extension="771544"/>
      <code codeSystem="2.16.840.1" codeSystemName="Provider Codes" code="207R00000X" displayName="Nephrology"/>
      <addr use="WP">
        <city>East Point</city>
      </addr>
      <telecom use="WP" value="tel:(xxx)xxx-xxxx"/>
      <assignedPerson>
        <name>
          <prefix>Mrs</prefix>
          <given>Test</given>
          <family>Martin</family>
          <suffix>NP</suffix>
        </name>
      </assignedPerson>
    </assignedAuthor>
  </author>
</ClinicalDocument>

1 个答案:

答案 0 :(得分:4)

没有assignedPersondoc.Elements()集合的子代。

尝试以下方法:

    XNamespace ns = "urn:hl7-org:v3";
    IEnumerable<XElement> result =
        doc
            .Descendants(ns + "assignedPerson")
            .Descendants(ns + "family");