草庐IT

XPath_Query

全部标签

xml - 用于在具有不同父元素的元素之间选择元素的 XPath

给定一个这样的XML文档:并且给定条件“从b开始,在d2b停止”是否有一个XPath表达式可以选择:理想情况下:合理:我知道根据“从‘a’开始到‘e’结束”的条件,我可以使用表达式//*[preceding-sibling::a][following-sibling::e];我想知道在不能保证开始元素和结束元素共享同一父元素时,是否有办法对祖先轴和前面的兄弟进行一些奇怪的交集以找到共同的祖先。 最佳答案 XPath(1.0和2.0)是一种用于XML文档的查询语言。因此它不能改变任何XML文档的节点和结构。可以通过XSLT转换获得想要

c# - 如何在 C# 中使用像 exists() 这样的 XPath 函数?

我想使用SelectNodes方法和XPathNavigator类从XmlDocument对象中读取一些节点。但是C#无法评估这个(使用XMLSpy验证)XPath-Expressen://LogicUnit[exists(Level[@val='R'])]/LogicLines[exists(LogicLine/DATAVIEW_SRC)]运行时抛出XPAthException“需要命名空间管理器或XsltContext。此查询具有前缀、变量或用户定义的函数。”我不明白这个异常,因为我的XML文档没有使用任何命名空间,也没有XSLT文档。如果我使用任何XPATH函数,总是会出现此异常

c# - 未分组和重复的 XML 元素的 LINQ/Xpath 查询

我是.NET的新手,我在使用LINQtoXML执行查询时遇到了一些问题。我有一个奇怪格式的XML文件:120040FR25516UK1052418FR4512CH154025UK25531CH431033FR4517FR我想从这个文件中计算每个的总和元素值,其中大于'20'和是“FR”或“CH”。这个操作独立于标签(所有检查上述条件的元素都应该相加,无论它们在相同还是不同的元素下)。我的问题是我没有分组的元素标签,和一起...(我无法更改XML格式,我正在从无法访问的Web服务中使用它)。如果我有一个假设的标记将这些三元组组合在一起,我认为代码很简单:XElementroot=XEle

php - 在 xpath 中根据类和样式排除标签

我有以下代码用于xpath查询...TopTenTipsforGrowingYourOwnTomatoes(TheBasicArtofItalianCooking)[KindleEdition]我只想提取TopTenTipsforGrowingYourOwnTomatoes(TheBasicArtofItalianCooking)所以我正在使用textContent使用以下xpath查询$xpath_books->query('//span[@id="btAsinTitle"]')但是结果是TopTenTipsforGrowingYourOwnTomatoes(TheBasicArto

Java XPath 查询没有在节点中获取文本?

当我运行以下代码时,我得到了输出Left:而不是Left:16。//RetrieveDOMfromXMLfileDocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();DocumentBuilderdb;Documentdom=null;try{db=dbf.newDocumentBuilder();dom=db.parse("config");}catch(ParserConfigurationExceptione){e.printStackTrace();}catch(SAXExceptione){e.print

xml - xpath - if else 结构

我正在试验xpath。这是我用于实验的xml:6464666那么如何在xpath中实现ifelse呢?如果第二个Action来自玩家一,那么执行f.ex.:还给它...更新1:好的,这就是我的意思:boolean(/game/moves/roll[2]/@player=1如果第二个元素是玩家1或不是玩家1,那会返回给我,所以现在我想添加一个else-Path,如果它是的话?那么如何添加呢? 最佳答案 使用如下所示的XPath2.0表达式:if(/moves/roll[2]/@playereq'1')then'player:1'els

c# - XPATH 为带有命名空间的 XML 返回 null

我有以下XML。............我正在使用C#代码(.NET4.0)解析此XML。我正在使用下面的代码来选择所有上述XML中的节点。XmlNamespaceManagerxmlnsmgr=newXmlNamespaceManager(INISRecordXMLdoc.NameTable);xmlnsmgr.AddNamespace("xsi","http://www.w3.org/2001/XMLSchema-instance");xmlnsmgr.AddNamespace("xsd","http://www.w3.org/2001/XMLSchema");xmlnsmgr.A

xml - XPath 语法 - 如何在复杂的位置路径中使用 position()

我正在编写一个递归算法来为给定元素生成唯一的最小XPath。主要思想是允许在一个文档中选择一个元素(即PC上chrome中的html元素)并能够在类似文档中找到相应的元素(即移动版本中的相同站点)。在此过程中,我需要为整个给定文档生成完整的XPath字符串,即对于给定节点,遍历整个树并将所有节点及其所有属性附加到字符串。例如,对于以下文档(需要的元素用“*”标记):**我的代码生成的XPath://*[@id='go_button'and@text='Go'andparent::*[child::*[@id='url_text_field']andchild::*[@id='back_

xml - XPath 2.0 - 1.0 等效?

我在生成有效的XPath1.0等效于一个有效的2.0示例时遇到了麻烦,它会产生相同的结果(而且,事实上,不会失败)。我必须使用以前版本的原因是PHP不支持XPath2.0。我的xml看起来像:我想获取element节点的value属性,其中祖父container节点具有属性id等于1或3。我还想将上述id属性连接到相应的elementvalue属性。如果前两个语句不完全可读(这些天我的英语有点生疏),这就是我想要实现的:1:03:1格式为:[containerid]:[elementvalue]我编写的有效XPath2.0路径给出了预期的结果://container[@id=1or@i

xml - 在 xmlstarlet 上使用 xpath 检索 XML 元素的所有属性名称

我可以看到如何检索所有属性值:xmlsel-t-v"//element/@*"但我想获取所有属性名称。我可以通过xmlsel-t-v"name(//x:mem/@*[3])"获取第n个名称,它返回第三个属性名称。但是xmlsel-t-v"name(//x:mem/@*)"不起作用(仅返回第一个属性名称)...有没有办法获取所有属性名称? 最佳答案 使用-t和-m定义模板匹配,然后使用-v应用另一个XPath表达式。$xmlsel-T-t-m"//mem/@*"-v"name()"-ninput.xml应用于此输入XML时:将打印:y