c# - 样式问题 : LINQ or XPath to read in XML nodes

标签 c# .net xml linq xpath

<分区>

我很想知道如何以最优雅/最干净的方式阅读以下 XML。 (片段)

<Config>
    <MyTag />
    <MyTag />
</Config>
<Config>
    <MyTag />
    <MyTag />
    <MyTag />
</Config>

我只想读取 MyTag 节点。我的第一个想法是 LINQ,但不知道使用 XPath 是否更干净。

最佳答案

使用 XPath 更简洁:

foreach(XElement myTag in (IEnumerable)XDocument.Load(xmlFile)
                                            .XPathEvaluate("/xml/Config/MyTag"))
{
}

LINQ 等价物是:

foreach(var myTag in XDocument.Load(xmlFile).Root.Elements("Config")
                              .SelectMany(x => x.Elements("MyTag")))
{
}

我的回答假设 Config 标签周围有一个 xml 标签,否则 xml 文件将无效。

关于c# - 样式问题 : LINQ or XPath to read in XML nodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6536950/

相关文章:

c# - 如何从两个 List<string> 中获取不同的值?

c# - 页面刷新与 IsPostBack

c# - 找不到适合指定文化或中性文化的任何资源

c# - 使用反射将 List<object> 转换为未知的 T[]

c# - 访问共享文件?

c# - 时间跨度(以毫秒为单位)仅分钟和秒

c# - 读取 DataTable 中的 XML 数据和架构

c# - 在C#中清除内存映射文件的内容

xml - powershell xml 排序节点和 replacechild

html - 在没有警告消息的情况下在浏览器中显示 xml