草庐IT

XPath_Query

全部标签

xml - 使用 XPath 在命名空间中选择元素

我想选择文档中具有给定namespace(前缀)的最顶层元素。更具体地说:我的XML文档要么以/html/body(在XHTMLnamespace中)开头,要么以特定namespace中的几个元素之一开头。我实际上想去掉/html/body并只返回正文内容或整个根命名空间元素。 最佳答案 在XPath2.0和XQuery1.0中,您可以使用in-scope-prefixes()测试命名空间前缀在谓词中起作用。例如//*[in-scope-prefixes(.)='html']如果您不能使用v2,在XPath1.0中您可以使用name

xml - 如何使用 XPath 选择最后 N 个元素?

我支持一个网站,该网站生成内容XML,然后使用XSLT将其转换为网页。我被要求创建一个新的样式表,它将“存档”页面的输出转换为Atom以进行联合。我遇到的问题是存档页面包含相当多的项目—142项并且还在增加—并且提要永远不应超过三十项。目前,存档页面的输出看起来像这样:.........year和month标签由HTML转换使用,但与Atom提要完全无关。我曾希望将position()函数与后代轴一起使用会起作用(//day[position()>last()-30]),但这会选择每个月的最后30天,这根本不是我需要的。:-)有没有办法用XSLT或XPath来做到这一点?不得不修改XM

xml - XPath 中的计数函数

我有一个XML文档,并试图使用xpath获取具有特定文本的节点数。看下面的xmlcount(//event_type)返回event_type节点的数量,但我想要的是具有错误文本的event_type节点的数量。20091231-1050002009-12-31T10:50:00.46875+00:00InformationLoadProjectsLoadProjectsrequestdetected2009-12-31T10:50:02.296875+00:00ErrorProcessor.InitaliseDCFilessomeerrordetails2009-12-31T10:5

ruby - 获取标签名称的 xpath 语法是什么?

我正在使用Nokogiri来解析大型XML文件。假设我有以下结构:PabloMortimerFerdinandJamesCorneliusMadisonHumphreyZopharHandlebrushIII我可以这样数非企鹅:xml.xpath('//menagerie//*[not(penguin)]').length//2但是我如何获得标签列表,就像这样?(确切的格式并不重要;我只想直观地扫描非企鹅。)bullaardvark更新这给了我想要的列表-感谢Oded和TMN以及delnan!xml.xpath('//menageries/*[not(penguin)]').eachd

xml - XPath 中的多个条件(和运算符)

我有以下XML:我想获取myBooks中book的所有name,但在中没有对应的book>书籍(书名和作者)。因此,例如,我想检索:书"Test2"因为("Title2","Author1")对不存在在books中。到目前为止,我有://myBooks/book[not(@title=//books/book/@titleand@author=//books/book/@author)]但是,当然,在那种情况下,上述XPath不起作用,因为组合(“标题2”、“作者1”)存在(来自“book2”和“book1”)。如何在同一节点上应用和运算符? 最佳答案

xml - 如何使用 XPath 2.0 识别数字序列中的重复值?

我有一个XPath表达式,它为我提供了一系列值,如下所示:122345567使用distinct-values()可以很容易地将其转换为唯一值序列1234567。但是,我要提取的是重复值列表=25。我想不出一个简单的方法来做到这一点。谁能帮忙? 最佳答案 使用这个简单的XPath2.0表达式:$vSeq[index-of($vSeq,.)[2]]其中$vSeq是我们要在其中查找重复项的值序列。有关此“工作原理”的解释,请参阅:http://dnovatchev.wordpress.com/2008/11/16/xpath-2-0-g

xml - XPath查询如何根据两个属性获取一个属性的值

我想从下面的标签中提取name属性值我可以轻松地根据模式值获取名称属性值,如下所示xpathApplications.xml'//applications/application[@mode='3']'/@name但是如果我想添加更多条件,即“当mode=X且工具属性不在应用程序标签中时获取名称属性值”我们如何做到这一点?我试过类似的东西xpathApplications.xml'//applications/application[@mode='3'and!@tool]'/@name但它不起作用。我以前没有使用过XPath,我发现它很棘手我在XPath上搜索W3C帮助,但没有找到我想

xml - XPath:默认为 'Node A' ,如果 'Node B' 不为空,则选择 'Node B'

我需要创建一个执行以下操作的XPath表达式:默认返回'NodeA'中的元素如果“NodeB”不为空则返回其内部的元素。这是一些示例XML,以便可以清楚地看到我的目标结构(我使用的是MSInfoPath):2012-09-132012-09-14此XPath表达式可用于评估NodeB是否存在文本:boolean(//my:NodeB[(text())])我听说过“Becker方法”,但我不确定当两个节点都存在时它如何应用。我是XPath的新手,非常感谢能提供的任何帮助。 最佳答案 如果NodeB存在(并且有文本内容),则此XPath

xml - 用于搜索具有包含特定字符串的任何属性的节点的 Xpath?

如果我使用以下XPath,我可以搜索包含在特定属性中的字符串/xs:schema/node()/descendant::node()[starts-with(@my-specific-attribute-name-here,'my-search-string')]但是,我想搜索任何包含*字符串的属性 最佳答案 示例XML:假设,我们需要选择具有任何包含h的属性的元素。在此示例中:element1、element2。我们可以使用这个XPath://*[@*[starts-with(.,'h')]]在您的示例中:/xs:schema/n

php - 我如何使 Xpath 搜索不区分大小写

我目前正在进行xpath搜索,搜索工作正常,但我需要使其不区分大小写。我使用的xml文件是1.0,根据我的研究,这意味着我必须使用一些称为翻译功能的东西,但我不确定如何执行此操作。这是我的搜索文件:$holidayDoc=simplexml_load_file('holidays.xml');//fetchdatafromform$txtSearch=$_GET['txtSearch'];$qry="//channel/item[contains(.,\"$txtSearch\")]";$holidays=$holidayDoc->xpath($qry);//dothexpathque