我已经在LINQ to XML上做了很多阅读,但遗憾的是这个主题(对我来说相当新)根本不会点击.话虽如此,请随时纠正有关正确的XML词汇表的任何错误说法.我的目标是获取XML数据(如下所示),并逐节点地读取它.在这种情况下,我希望能够打开Delimiters节点,以获得" one "," two "和" three "元素的值.接下来,我想从Sources/SourceType节点中获取" one "," two "和" three "元素的值.
<?xml version="1.0"?>
<Values>
<Delimiters>
<one>delim 1</one>
<two>delim 2</two>
<three>delim 3</three>
</Delimiters>
<Sources>
<SourceType>
<one>type 1</one>
<two>type 2</two>
<three>type 3</three>
</SourceType>
</Sources>
</Values>
Run Code Online (Sandbox Code Playgroud)
我已经阅读XMLTextReader过,XMLReader但我想听听你们所有人对我这种情况的最佳做法.
谢谢你的阅读,
埃文
您可能希望将Linq用于XML - 解析很简单:
XDocument doc = XDocument.Load("test.xml");
foreach (var delimiter in doc.Descendants("Delimiters").Elements())
Console.WriteLine(string.Format("{0} : {1}", delimiter.Name, delimiter.Value));
foreach (var type in doc.Descendants("SourceType").Elements())
Console.WriteLine(string.Format("{0} : {1}", type.Name, type.Value));
Run Code Online (Sandbox Code Playgroud)
Linq对XML的一大优势在于,不仅可以很容易地查询所需的节点(对于您的示例没有太大区别,但它在更复杂的XML中节省了很多)但是一旦您熟悉了查询语法就无处不在Linq一般 - 你不必改变你的想法.