Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml Linux命令行上的xpath查询_Xml_Xpath_Xpath 2.0_Xml Libxml - Fatal编程技术网

Xml Linux命令行上的xpath查询

Xml Linux命令行上的xpath查询,xml,xpath,xpath-2.0,xml-libxml,Xml,Xpath,Xpath 2.0,Xml Libxml,我正在尝试对堆栈交换数据使用xpath查询。xml文件具有以下结构 <posts> <row Id="2" PostTypeId="1" Body="some text goes here" ..... /> </posts> 我想使用xpath查询来查询这个xml文档。例如,/posts/row[@PostTypeId=1]/@Body。即提取所有PostTypeId=1问题的正文。我使用该工具尝试了上述查询。它可以从xml文档中检索类型问题的主体

我正在尝试对堆栈交换数据使用xpath查询。xml文件具有以下结构

<posts>
    <row Id="2" PostTypeId="1" Body="some text goes here" ..... />
</posts>
我想使用xpath查询来查询这个xml文档。例如,/posts/row[@PostTypeId=1]/@Body。即提取所有PostTypeId=1问题的正文。我使用该工具尝试了上述查询。它可以从xml文档中检索类型问题的主体

然而,我尝试在ubuntu中使用以下方法

libxml xpath perl-I执行xpath-e/posts/row[@PostTypeId=\1\]/@Body posts.xml。它不是单独提取Body属性。而是将整个行元素转储到行元素中。 我自己使用lxml.etree编写了一个python脚本。代码如下

tree=etree.parseinput文件 print tree.xpathxpression

我使用上面类似的命令行调用了上面的python脚本。它说没有找到匹配的节点。 3.libxml2 utils-trued xmllint-pattern/posts/row[@PostTypeId=\1\]/@Body posts.xml。它还抱怨说没有找到匹配的节点


鉴于xpath查询可以在在线工具上运行,但不能在命令行上运行,我认为在命令行上输入xpath查询需要特别考虑。在ubuntu上使用bash脚本中的命令行工具时,正确的xpath查询是什么?

您的输入XML有名称空间吗?没有。没有名称空间。您确定上下文是/posts吗?不可能重现你的错误。您提供的示例工作正常。也许您可以包含一个不起作用的源代码的更完整示例。请注意,虽然您已将此问题标记为xpath-2.0,但您尝试的工具都限于xpath 1.0,尽管您的示例路径对这两个版本都有效。
   - Id
   - PostTypeId
      - 1: Question
      - 2: Answer
   - ParentID (only present if PostTypeId is 2)
   - AcceptedAnswerId (only present if PostTypeId is 1)
   - CreationDate
   - Score
   - ViewCount
   - Body
   - OwnerUserId
   - LastEditorUserId
   - LastEditorDisplayName="Jeff Atwood"
   - LastEditDate="2009-03-05T22:28:34.823"
   - LastActivityDate="2009-03-11T12:51:01.480"
   - CommunityOwnedDate="2009-03-11T12:51:01.480"
   - ClosedDate="2009-03-11T12:51:01.480"
   - Title=
   - Tags=
   - AnswerCount
   - CommentCount
   - FavoriteCount