草庐IT

XPath_Query

全部标签

xml - xpath: 为每个子节点获取父节点的值

鉴于此XML:SomeText有4个孙节点,我想获取它们所有的父节点(恰好是我的示例数据中的“子”节点)id值。我自己的微弱尝试://孙/parent::child/@id返回:text{"2"},text{"3"}只是,但是text{"2"},text{"2"},text{"3"},text{"3"}是我希望看到的。 最佳答案 您需要使用宿主语言来迭代grandchild元素并为每个元素访问parent::child/@id或您需要移动到XPath2.0(https://www.w3.org/TR/xpath20/#id-for-

html - 没有特定类后代的所有元素的 XPath?

我有CSS选择器并试图在selenium中应用它。Css选择器是.parentclass:not(:has(.childclass))。我正在尝试获取所有不具有childclass类的后代元素的父元素。它在jQuery中完美运行。但在Selenium中似乎不起作用。所以我决定试试XPath。XPath中与上述CSS选择器等效的是什么?我能够完成以下工作://*[contains(@class,'parentclass')].但这只是条件的第一部分。我怎么能在XPath中说我只需要不包含具有CSS类childclass的子项的父项? 最佳答案

html - 文本的 XPath 不起作用

我想使用其文本属性定位标签。我试过了//label[normalize-space(text())='Onlyallowresourceswhoare']//label[contains(normalize-space(text()),'Onlyallowresourceswhoare')]但它们都不起作用。 最佳答案 这个XPath,//label[normalize-space()='Onlyallowresourceswhoare']将选择所有label空间归一化stringvalue的元素是目标文本。另见Testingtex

c# - 同一节点上的 Xpath 多个条件

我有一个如下所示的xml结构我想选择包含字段名称“Id”和值“811”的字段。这个的xpath是什么所以正确的xpath应该只返回尝试过/Result/node[field/@name='Id'andfield/@value='811']但这会返回两个节点 最佳答案 如果你想得到node的field有两个必需的属性,试试:/Result/node[field[@name='Id'and@value='811']] 关于c#-同一节点上的Xpath多个条件,我们在StackOverflow

xml - 获取 XSLT 当前节点,格式化为 XPath 查询?

我有以下代码块获取树下节点的名称,如下所示:节/页/子页但我希望能够将其归结为以下内容(只是弥补):部分[@id='someId']/page/subPage[@user='UserA']/@title我从其中一篇StackOverflow帖子中找到了以下代码:/这给了我一条直路,但我想在它上面运行更多逻辑以使其包含@id(或相关属性),也许还有一些我现在想不到的东西。执行此操作的最佳方法是什么?我已经检查过EXSLT函数,它可能会起作用,但也许你们已经用更好的方法解决了这个问题。有什么想法吗?如果有帮助,我正在使用ruby​​的nokogiri来解析xml/xslt。非常感谢,兰斯

.NET:有没有办法在 XPath 1.0 查询中欺骗默认命名空间?

我正在构建一个对XHTML文档执行xpath1.0查询的工具。在查询中使用命名空间前缀的要求让我很沮丧。查询看起来像这样:html/body/div[@class='contents']/div[@class='body']/div[@class='pgdbbyauthor']/h2[a[@name][starts-with(.,'Quick')]]/following-sibling::ul[1]/li/a(全部在一条线上)...这已经够糟糕了,除了因为它是xpath1.0,我需要在每个QName上使用显式命名空间前缀,所以它看起来像这样:ns1:html/ns1:body/ns1:

xml - 通过xpath查找xml中的相邻节点

我有一个深层嵌套的结构(实际上解析出xhtml,所以很多讨厌的东西),就像这样:stuffmorestuff这在长表中重复。我需要一个xpath表达式来选择第二个字体标签(或者更确切地说是text())。我正在查看preceding-sibling轴,但有些地方不太正常。类似的东西(如果这很荒谬,请原谅我,我的xpath已经生锈了)//tr[preceding-sibling::tr/td/font]/td/text() 最佳答案 使用:(//tr/td[font])[2]/font/text()这意味着:选择所有font元素的所有

c# - XPath 在使用 DataContractSerializer 创建的 xml 中不起作用

我有一个数据契约(Contract)对象,我能够使用DataContractSerializer将它成功序列化为xml,但是当我尝试使用XPath访问一次节点时,它返回一个空值。我无法找出为什么会这样。到目前为止,这是我必须要做的。namespaceDataContractLibrary{[DataContract]publicclassPerson{[DataMember]publicstringFirstName{get;set;}[DataMember]publicstringLastName{get;set;}[DataMember]publicintAge{get;set;}

xml - Xpath 选择包含特定列表子集的元素

美好的一天!假设以下XML:我想编写一个Xpath查询来选择哪些商店在书单中有他们所有的书。在我的示例中,它是第一家商店,而不是第二家。我试过了//store[./book/@id=/booklist/book/@id]但它会选择包含至少1本普通书籍的商店,而不是全部。此外,没有为两个节点列表找到任何像“包含”这样的谓词,所以我缺乏想法。编辑:我非常感谢任何帮助,但我更喜欢使用“基本”Xpath功能(如果存在)的解决方案。对我来说这是一门新语言。然而,感谢到目前为止所有回复的人。 最佳答案 使用:/*/store[not(book[

xml - 匹配后排除节点的 Xpath

我正在尝试解析一些数据,这些数据包含中选项卡的每个单元格节点。我需要忽略以星号*开头的节点以及它之后的4个节点。这可以用xpath完成吗,还是我需要用不同的方式来解决这个问题?编辑:我的XML如下所示:ROW1CELL1ROW1CELL2ROW1CELL3ROW1CELL4ROW1CELL5*ROW2CELL1ROW2CELL2ROW2CELL3ROW2CELL4ROW2CELL5ROW3CELL1ROW3CELL2ROW3CELL3ROW3CELL4ROW3CELL5 最佳答案 下面的表达式:/*/text[not(starts-