Tag: XPath

XSLT / XPath中的当前节点与上下文节点?

在XSLT中,“当前节点”和“上下文节点”有什么区别? 你可以在这里find两个术语: http : //www.w3.org/TR/xslt 。 你什么时候使用一个或另一个? 你如何参考每个?

XPath根据孩子孩子的价值来select元素

试图根据其中一个孩子的孩子的价值来select一个元素 思考以下但不工作,感谢任何帮助,谢谢 ./book[/author/name = 'John']或 ./book[/author/name text() = 'John'] 希望所有书籍的作者姓名='约翰' Xml文件 <list> <book> <author> <name>John</name> <number>4324234</number> </author> <title>New Book</title> <isbn>dsdaassda</isbn> </book> <book>…</book> <book>…</book> </list>

XPath:select具有特定属性的第一个元素

XPath bookstore/book[1]selectbookstore下的第一本书籍节点。 如何select匹配更复杂的条件的第一个节点,例如匹配/bookstore/book[@location='US']的第一个节点

带默认命名空间的Xml-SelectNodes通过XmlNamespaceManager不能正常工作

我有一些默认的命名空间的XML <a xmlns='urn:test.Schema'><b/><b/></a> 并且要计算<b/>的数量 我该如何定义 XmlNamespaceManager nsmgr = ???? Assert.AreEqual(2, doc.SelectNodes("//b", nsmgr).Count); 所以断言成为现实? 我已经尝试过(使用nunit): [Test] [Ignore("Why does this not work?")] public void __DoesNotWork_TestSelectWithDefaultNamespace() { // xml to parse with defaultnamespace string xml = @"<a xmlns='urn:test.Schema'><b/><b/></a>"; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); // fails because xpath does not have the namespace //!!!! Assert.AreEqual(2, doc.SelectNodes("//b").Count); // using […]

不区分大小写xpath contains()可能吗?

我正在运行DOM的所有文本节点,并检查nodeValue是否包含某个string。 /html/body//text()[contains(.,'test')] 这是区分大小写的。 但是,我也想抓住Test , TEST或TesT 。 这是可能的XPath(在JavaScript中)?

XPath查询获取元素的第n个实例

有一个HTML文件(其内容我不控制)有几个input元素都具有相同的固定id属性"search_query" 。 该文件的内容可以改变,但我知道我总是想获得第二个input元素的id属性"search_query" 。 我需要一个XPathexpression式来做到这一点。 我试过/ / //input[@id="search_query"][2]但这不起作用。 以下是查询失败的示例XMLstring: <div> <form> <input id="search_query" /> </form> </div> <div> <form> <input id="search_query" /> </form> </div> <div> <form> <input id="search_query" /> </form> </div> 请记住,上述仅仅是一个例子,其他的HTML代码可能会非常不同, input元素可以出现在任何地方,没有一致的文档结构(除了我保证总是会有至less两个input元素的id "search_query"属性)。 什么是正确的XPathexpression式?

获取XPath到XElement?

我在文档中有一个XElement。 鉴于XElement(和XDocument?),是否有扩展方法来获得它的完整(即绝对,例如/root/item/element/child )XPath? 例如myXElement.GetXPath()? 编辑:好吧,看起来像我忽视了一些非常重要的东西。 哎呦! 元素的索引需要考虑在内。 请参阅我的最后一个答案提出更正解决scheme。

XPathselect具有名称空间的节点

它是一个.vbproj,看起来像这样 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>15a7ee82-9020-4fda-a7fb-85a61664692d</ProjectGuid> 所有我想得到的是ProjectGuid,但它不起作用时,有一个命名空间… Dim xmlDoc As New XmlDocument() Dim filePath As String = Path.Combine(mDirectory, name + "\" + name + ".vbproj") xmlDoc.Load(filePath) Dim value As Object = xmlDoc.SelectNodes("/Project/PropertyGroup/ProjectGuid") 我能做些什么来解决这个问题?

从SQL Server 2008中的XML字段中select值

只要看看我的XML字段,我的行看起来像这样: <person><firstName>Jon</firstName><lastName>Johnson</lastName></person> <person><firstName>Kathy</firstName><lastName>Carter</lastName></person> <person><firstName>Bob</firstName><lastName>Burns</lastName></person> 请注意,这是我的表中的三行。 我想返回一个SQL结果作为一个表中 Jon | Johnson Kathy| Carter Bob | Burns 什么查询将完成此?

XPath:select文本节点

拥有以下XML: <node>Text1<subnode/>text2</node> 如何通过XPathselect第一个或第二个文本节点? 像这样的东西: /node/text()[2] 当然不起作用,因为它是节点内每个文本的合并结果。