繁体   English   中英

使用XDocument查询唯一ID

[英]Query for unique id with XDocument

我有以下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>

我如何编写代码以提取所有人的uniqueID。

您可以使用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();

尝试下面的代码,并在适当的位置放置XmlDocument

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>";

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
XmlNodeList nodeList = xmlDoc.GetElementsByTagName("Person");

foreach (XmlNode node in nodeList)
{
    Console.WriteLine(node.Attributes["uniqueID"].Value);
}

您可以通过以下方式获取唯一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 />");
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM