我有以下C#代码从XML文件读取值。但是当我扩展结果时,它说“枚举没有结果”
问题
注意:我已经在堆栈溢出和其他论坛中看到了类似的问题,并且已经尝试了建议。
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>
答案 0 :(得分:4)
没有assignedPerson
是doc.Elements()
集合的子代。
尝试以下方法:
XNamespace ns = "urn:hl7-org:v3";
IEnumerable<XElement> result =
doc
.Descendants(ns + "assignedPerson")
.Descendants(ns + "family");