首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# XPath id()不工作?

C# XPath id()不工作?
EN

Stack Overflow用户
提问于 2010-03-18 17:08:25
回答 3查看 659关注 0票数 3

我正在使用C#,我被难住了。它只是不支持id()吗?我有一个很大的XML文件,大约4-5个大约400kb,所以我需要一些速度和性能,只要我能得到它。

我使用XmlDocument.SelectSingleNode("id('blahblahblah')"),它不能通过id获取节点。是我疯了还是C# XPath不支持id()?

EN

回答 3

Stack Overflow用户

发布于 2010-03-18 17:12:32

使用XmlDocument.GetElementById获取指定ID的XmlElement,例如:

代码语言:javascript
复制
XmlElement elem = doc.GetElementById("blahblahblah");

但是,这只适用于指定DTD的文档:

名为" ID“的

属性不属于ID类型,除非在DTD中这样定义。

如果您的文档没有DTD,您可以使用XPath表达式来选择id属性设置为您的ID的节点:

代码语言:javascript
复制
XmlElement elem = doc.SelectSingleNode("//*[@id='blahblahblah']");
票数 5
EN

Stack Overflow用户

发布于 2010-03-18 17:13:31

代码语言:javascript
复制
xmlDocument.GetElementById("blahblahblah")

可能是个更好的选择。

票数 1
EN

Stack Overflow用户

发布于 2010-03-18 17:15:09

“官方”XPath recommendation说:

id函数根据元素的唯一ID选择元素

哪里

元素节点可以具有唯一标识符(ID)。这是在DTD中声明为类型ID的属性的值。文档中的两个元素不能具有相同的唯一ID。如果XML处理器报告文档中的两个元素具有相同的唯一ID (只有在文档无效时才有可能),则必须将文档顺序中的第二个元素视为不具有唯一ID。

注意:如果文档没有DTD,则文档中的任何元素都不会具有唯一的ID。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2468529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档