使用XDocument查询唯一ID

时间:2015-05-01 06:17:14

标签: c# xml linq linq-to-xml xml-namespaces

我有以下XML名称Sample.xml,我试图使用XDocument查询uniqueID:

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

如何编写代码以提取所有人的唯一ID。

3 个答案:

答案 0 :(得分:1)

您可以使用LINQ to XML从XML文档中检索唯一ID。

string xml = "<Request><Person xmlns='http://CompanyName.AppName.version1' uniqueID='3221'><AccountNo>83838</AccountNo><FirstName>Tom</FirstName><LastName>Jackson</LastName></Person><Person xmlns='http://CompanyName.AppName.version1' uniqueID='21132'><AccountNo>789875</AccountNo><FirstName>Chris</FirstName><LastName>Smith</LastName></Person></Request>";

XDocument doc = XDocument.Parse(xml);
XNamespace ns = "http://CompanyName.AppName.version1";
var uniqueIDs = doc.Descendants(ns + "Person")
                   .Select(p => p.Attribute("uniqueID").Value)
                   .ToList();

答案 1 :(得分:0)

尝试以下代码使用XmlDocument

{{1}}

答案 2 :(得分:-1)

您可以通过以下方式获取唯一ID:

string xml="Your XML String";
XmlTextReader reader = new XmlTextReader(new System.IO.StringReader(xml));
XmlDocument doc = new XmlDocument();
XmlNode node = doc.ReadNode(reader);

foreach (XmlNode chldNode in node.ChildNodes)
{
    if (chldNode.HasChildNodes)
    {
        foreach (XmlNode item in node.ChildNodes)
        {
            string uniqueID = chldNode.Attributes["uniqueID"].Value;
            Response.Write(employeeName + "<br />");
        }
    }
}
相关问题