c# - 使用 .NET 读取 XML 文件

标签 c# .net xml

我是 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>

最佳答案

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。

关于c# - 使用 .NET 读取 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2565064/

相关文章:

c# - 使用 C# 测试与服务器的连接

c# - 将列指定为多个组合回归模型中的特征和标签 (ML.NET)

jquery - 如何在 MVC5 中使用 Jquery 屏蔽输入?

.net - 有没有办法避免 FieldAccessException?

sql - 在 SQL Server 中使用嵌套的 XML 节点

xml - 使用 local.xml 更改或重新排列 Magento 登录和注销(顶部链接)位置

c# - C#中如何获取当前应用程序的名称

c# - EF Core 3.1 更新实体

c# - 我如何测量要打印的字符串

xml - 在Excel UI Ribbon中动态填充dynamicMenu