C# 如何读取具有名称空间值的XML元素
如果xml元素有名称空间,则在获取xml元素值时会遇到问题。请帮助我这里有什么问题。下面是我的xml字符串C# 如何读取具有名称空间值的XML元素,c#,xml,C#,Xml,如果xml元素有名称空间,则在获取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>Seattl
<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>
John 123 Main St.Seattle WA 98113 USA Chris Preston 123 Robin St.Newyork TU 98113 USA Charlis 53 Jacob St.California闹市区98111 USA
我的代码在下面
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):
}
}
XDocument doc=XDocument.Load(“PurchaseOrder.xml”);
List listWO=新列表();
foreach(doc.Root.Elements()中的XElement el)
{
如果(el.Elements().Count()>0)
{
采购订单po=新采购订单
{
Name=el.Elements(“aw:Name”).First()值,
City=el.Elements(“aw:City”).First()值,
Country=el.Elements(“aw:Country”).First()值
};
listPO.Add(采购订单):
}
}
在这里,我没有得到每个“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):
}
}
XDocument doc=XDocument.Load(“PurchaseOrder.xml”);
XNamespace awNs=doc.Root.GetNamespaceOfPrefix(“aw”);
List listWO=新列表();
foreach(doc.Root.Elements()中的XElement el)
{
如果(el.Elements().Count()>0)
{
采购订单po=新采购订单
{
Name=el.Elements(awNs+“Name”).First().Value,
城市=el.Elements(芒+城市”).First()值,
国家=el.元素(芒+国家”).First()值
};
listPO.Add(采购订单):
}
}
这是否回答了您的问题?