我有一个xml:
<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://tempuri.org/">
<Global>
<Items>
<Item text="Main text" key="1">
<Item text="Some text" key="1.1"/>
<Item text="Other text" key="1.2"/>
<Item text="Text" key="1.3"/>
</Item>
<Item text="Main text 2" key="2">
<Item text="Some text" key="2.1"/>
<Item text="Other text" key="2.2"/>
<Item text="Text" key="2.3"/>
</Item>
</Items>
</Global>
</string>
我需要在 Item 中获取项目(例如使用键 2.1、1.1 等)。
我有这个代码:
var xml = GetXmlFromWeb(service.ServiceLink, true);
var stringXml = new StringReader(xml); // Load data from web)
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
var reader = XmlTextReader.Create(stringXml, settings);
XDocument docWithDecode = XDocument.Load(reader);
IEnumerable<XElement> elements = docWithDecode.Root.Descendants("Item");
结果我得到了Count = 0。
这很有趣,如果我写IEnumerable<XElement> elements = docWithDecode.Root.Descendants();
了,我得到了元素,但是结构看起来很乱,数据被复制了,每个项目都有命名空间引用等。所以这里出了点问题。
有人可以帮我编写工作代码吗?谢谢!