【发布时间】:2014-06-07 09:17:32
【问题描述】:
我已经阅读了几篇关于 Linq to XML 的文章,但要么我理解错了,要么错过了一些难题。
我试图实现的是加载一些 XML,通过不同的命名字段和节点/元素获取所需的数据。这是 XML
<?xml version="1.0" encoding="utf-8"?>
<metadata created="2014-05-15T12:26:07.701Z" xmlns="http://site/cu-2.0#" xmlns:ext="http://site/cu/b-2.0">
<customer-list count="47" offset="0">
<customer id="7123456" type="Cust" ext:mark="1">
<name>Tony Watt</name>
<sort-name>Watt, Tony</sort-name>
<gender>male</gender>
<country>US</country>
<knownAs-list>
<knownAs locale="ko" sort-name="Tony Watt"</knownAs>
<knownAs locale="ja" sort-name="Watt Tony"</knownAs>
</knownAs-list>
</customer>
<tag-list>
<tag count="1">
<name>Country</name>
</tag>
<tag count="1">
<name>usa</name>
</tag>
<customer id="9876543" type="Cust" ext:mark="2">
所以我可以加载 XML 并显示数据。这是代码的sn-p
Dim ns As XNamespace = "http://site/cu-2.0#"
Dim XDoc As XDocument = XDocument.Parse(SomeXML)
For Each c As XElement In XDoc.Descendants(ns + "name")
Response.Write(c)
Next
所以这会显示所有带有“名称”的元素。我在这里遇到的问题是我想要客户名称而不是标签列表国家名称(请参阅 XML 的最后几行)
理想情况下,我想返回每个客户的所有详细信息,但是当我还需要其他数据时,添加命名空间会将我限制为具有名称的所有元素。如果我删除命名空间,我不会返回任何结果,所以我不确定下一步该怎么做?
我已经阅读了大量文章,但我似乎无法弄清楚需要做什么,或者我是否走错了路?请记住,我尝试过其他方法,如果有人喜欢,我可以发布,但在阅读 MSDN 和其他文章后,我认为我感到困惑或错过了一步。
【问题讨论】:
标签: vb.net linq-to-xml