我是xml的新手,无法找到在标记之间获取内容的方法。 我的XML文件是
<?xml version="1.0" encoding="utf-8"?>
<block1>
<file name="c:\w0.xml">
<word>Text</word>
<number>67</number>
</file>
<file name="c:\w1.xml">
<word>Text</word>
<number>67</number>
</file>
<file name="c:\w2.xml">
<word>Text</word>
<number>67</number>
</file>
</block1>
答案 0 :(得分:5)
LINQ to XML是一个很好的起点。请考虑以下代码来解析XML。
string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
<block1>
<file name=""c:\w0.xml"">
<word>Text</word>
<number>67</number>
</file>
<file name=""c:\w1.xml"">
<word>Text</word>
<number>67</number>
</file>
<file name=""c:\w2.xml"">
<word>Text</word>
<number>67</number>
</file>
</block1>";
XDocument document = XDocument.Parse(xml);
var block = from file in document.Descendants("file")
select new
{
Name = file.Attribute ("name").Value,
Word = file.Element("word").Value,
Number = (int)file.Element("number")
};
foreach (var file in block)
{
Console.WriteLine("{0}\t{1}\t{2}", file.Name, file.Word, file.Number );
}
当然,您可以使用XDocument.Load直接从文件加载XML,而不是使用Parse来读取XML字符串。 XDocument位于System.Xml.Linq命名空间中。坦率地说,我会从那里开始,但在System.Xml命名空间(XmlReader.Create等)中还有其他选项可以使用XML。
答案 1 :(得分:1)
您需要使用XML Query语言。如果您使用.Net 3.5或XPath,如果您之前使用的话,我会建议LINQ to XML。 XPath具有成为行业标准的优势,但在我看来,LINQ to XML是一个更“清洁”的API。
How to query XML with an XPath expression by using Visual C# - 使用XPath的教程
MSDN XPath Examples - 来自XPath参考
Location Paths - 例如包含 text()函数。