使用 XMLDocument 查询特定名称的所有元素

Query for all elements of a specific name with XMLDocument

我有以下 XML 名称 Sample.xml,我正在尝试使用 XDocument 查询 accountNo:

<Request xmlns="http://CompanyName.AppName.version1">
    <Person>
        <AccountNo>83838</AccountNo>
        <FirstName>Tom</FirstName>
        <LastName>Jackson</LastName>
    </Person>
    <Person>
        <AccountNo>789875</AccountNo>
        <FirstName>Chris</FirstName>
        <LastName>Smith</LastName>
    </Person>

在 C# 中使用以下代码,我能够获取第一人称

的帐号
XDocument xmlDoc = XDocument.Load("Sample.xml");    
XNamespace nsSys = "http://CompanyName.AppName.version1";
XElement xEl2 = xmlDoc.Element(nsSys + "Request ");
XElement xEl3 = xEl2.Element(nsSys + "Person");
XElement xEl4 = xEl3.Element(nsSys + "AccountNo");
String sValue = xEl4.Value;

输出:83838

如何写代码提取所有人的账号 例如。

83838

789875

您可以使用 Select 简单地投影数据:-

XNamespace ns = "http://CompanyName.AppName.version1";
var AccountNumbers = xdoc.Descendants(ns + "Person")
                         .Select(x => (string)x.Element(ns + "AccountNo")).ToList();

这将为您提供所有帐号 List<String>