繁体   English   中英

如何使用命名空间值读取 XML 元素

[英]How to Read XML element with namespace value

如果它具有名称空间,我在获取 xml 元素值时遇到问题。 请帮助我这里有什么问题。 我的 xml 字符串如下

<PurchaseOrder xmlns:aw="http://www.adventure-works.com"> <aw:ShippingAddress> <aw:Name>John</aw:Name> <aw:Street>123 Main St.</aw:Street> <aw:City>Seattle</aw:City> <aw:State>WA</aw:State> <aw:Zip>98113</aw:Zip> <aw:Country>USA</aw:Country> </aw:ShippingAddress> <aw:ShippingAddress> <aw:Name>Chris Preston</aw:Name> <aw:Street>123 Robin St.</aw:Street> <aw:City>Newyork</aw:City> <aw:State>TU</aw:State> <aw:Zip>98113</aw:Zip> <aw:Country>USA</aw:Country> </aw:ShippingAddress> <aw:ShippingAddress> <aw:Name>Charlis</aw:Name> <aw:Street>53 Jacob St.</aw:Street> <aw:City>California</aw:City> <aw:State>DOWNTOWN</aw:State> <aw:Zip>98111</aw:Zip> <aw:Country>USA</aw:Country> </aw:ShippingAddress> </aw:PurchaseOrder>

我的代码在下面

XDocument doc = XDocument.Load("PurchaseOrder.xml");
List<PurchaseOrder> listWO = new List<PurchaseOrder>();

 foreach (XElement el in doc.Root.Elements())
{
    if ( el.Elements().Count() > 0)
        {
        PurchaseOrder po = new PurchaseOrder
        {
            Name = el.Elements("aw:Name").First().Value,
            City = el.Elements("aw:City").First().Value,
            Country = el.Elements("aw:Country").First().Value
        };
        listPO.Add(po):
    }
 }

在这里,我没有明智地了解每个“ShippingAddress”的价值。

请参阅以下更改:

            XDocument doc = XDocument.Load("PurchaseOrder.xml");
            XNamespace awNs = doc.Root.GetNamespaceOfPrefix("aw");
            List<PurchaseOrder> listWO = new List<PurchaseOrder>();

             foreach (XElement el in doc.Root.Elements())
            {
                if ( el.Elements().Count() > 0)
                    {
                    PurchaseOrder po = new PurchaseOrder
                    {
                        Name = el.Elements(awNs + "Name").First().Value,
                        City = el.Elements(awNs + "City").First().Value,
                        Country = el.Elements(awNs + "Country").First().Value
                    };
                    listPO.Add(po):
                }
             }

暂无
暂无

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

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