【发布时间】:2015-09-29 02:12:01
【问题描述】:
如何使用XMLReader获取当前节点的XPath?
例如:
<Employee>
<Entity>
<Id>1</Id>
</Entity>
</Employee>
所以我需要为1 获取XPath,即Employee/Entity/Id。有什么想法吗?
using (var reader = XmlReader.Create(basePath, settings))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Text)
{
// need to get xpath of the text node
}
else if (reader.NodeType == XmlNodeType.Element)
{
// need to get xpath of the current node
}
}
}
【问题讨论】:
-
您必须跟踪您在其中的元素 - 您可以使用堆栈并在读取每个元素时推送它,并在到达 EndElement 时弹出它。不过,你想做什么?你需要下拉到
XmlReader吗?使用像XDocument这样的 DOM 会更容易。 -
@CharlesMager,你能提供一些例子吗?
-
XmlReader 不能使用 XPath。
-
@AlexanderPetrov 我需要迭代
Xml中的所有节点,并且需要获取每个节点的XPath?这可以使用XDocument来完成吗?如果是这样,你能发布一些例子吗?