c# - 获取具有相同名称的所有属性

标签 c# xpath

我正在使用XDocument,并且如果节点的名称与另一个节点的名称不同,则需要解析XML文件以检索具有相同名称事件的所有属性。
例如,对于此XML:

<document>
    <person name='jame'/>
    <animals>
          <dog name='robert'/>
    </animals>
</document>


我想检索所有名为“名称”的属性。

我可以使用一个请求XPath来做到这一点,还是需要解析每个节点以查找thos属性?

谢谢你的帮助 !

最佳答案

XPath表达式

//@name


会选择所有称为name的属性,无论它们出现在何处。

顺便说一句,“解析”是XPath进入图片之前XML文档所发生的事情。因此,当您说“我需要解析每个节点”时,我认为这并不是您的意思。在运行XPath查询之前,通常已经分析了整个文档。但是,我不确定您的意思是“解析”。可能类似于“我是否需要访问每个元素”之类的内容来查找这些属性?在这种情况下,答案是否定的,除非在某种程度上依赖于实现的模糊意义上对您没有任何影响。

关于c# - 获取具有相同名称的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25727842/

相关文章:

python - XPath 删除列表 Python 中的空格

c# - 如何在数据库中已有图像之前插入图像

带有忽略大小写或 tolower 的 C# 表达式树

javascript - 更改 xpath 查询查询的 xml 属性的值?

xslt - 如何在 xpath 表达式中实现具有名称的用户定义函数?

php - 使用 xPath/DOM > PHP 包含/排除内容

html - 在iOS的hpple库中对Xpath查询使用通配符

c# - ITrackingPoint、ITrackingSpan、SnapshotPoint、SnapshotSpan、ITextViewLine 之间有什么区别以及何时使用?

c# - 从 DataContract 中删除命名空间不起作用

c# - 将逗号分隔的数据集拆分为单独的数组