作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 xml_grep
访问通过 XPath 指定的属性值?
我已经尝试过:
# svn info http://unladen-swallow.googlecode.com/svn/trunk/ --xml > x
# cat x
<?xml version="1.0"?>
<info>
<entry
kind="dir"
path="trunk"
revision="1171">
<url>http://unladen-swallow.googlecode.com/svn/trunk</url>
<repository>
<root>http://unladen-swallow.googlecode.com/svn</root>
<uuid>05521daa-c0b4-11dd-bb00-bd6ab96fe29a</uuid>
</repository>
<commit
revision="1171">
<author>ebo@4geeks.de</author>
<date>2010-08-21T18:17:31.382601Z</date>
</commit>
</entry>
</info>
# xml_grep uuid x --text_only
05521daa-c0b4-11dd-bb00-bd6ab96fe29a
# xml_grep //info/entry/@path x --text_only # correct XPath syntax
error: unrecognized expression in handler: '//info/entry/@path' at /usr/bin/xml_grep line 198
# xml_grep //info/entry/[@path] x --text_only
# # no output
我查看了在线帮助页面,但与属性匹配的唯一语法太冗长了:
# xml_grep '*[@path]' x
<?xml version="1.0" ?>
<xml_grep version="0.7" date="Wed Aug 28 15:22:13 2013">
<file filename="x">
<entry kind="dir" path="trunk" revision="1171">
<url>http://unladen-swallow.googlecode.com/svn/trunk</url>
<repository>
<root>http://unladen-swallow.googlecode.com/svn</root>
<uuid>05521daa-c0b4-11dd-bb00-bd6ab96fe29a</uuid>
</repository>
<commit revision="1171">
<author>ebo@4geeks.de</author>
<date>2010-08-21T18:17:31.382601Z</date>
</commit>
</entry>
</file>
</xml_grep>
#
正确的语法是什么?
最佳答案
xml_grep
是一个非常简单的工具,它使用 Perl 的 XML::Twig
模块。 类 XPath 表达式允许的语法是 documented there 。看来这样提取属性值是不可能的。
我建议改用xpath
程序:
$ xpath x '//entry/@path'
Found 1 nodes:
-- NODE --
path="trunk"
该程序应与 XML::Xpath
捆绑在一起.
如果一切都失败了,那就自己动手吧。我选择的武器是 XML::LibXML
:
use strict; use warnings;
use XML::LibXML;
my ($file, $query) = @ARGV;
my $xml = XML::LibXML->load_xml(location => $file);
print $xml->findvalue($query), "\n";
然后$ perl xpath-findvalue.pl x '//entry/@path'
。输出:主干
。
关于xml - 使用 xml_grep 访问 XPath 指定的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18496632/
XML 菜鸟在这里。 如果一个节有 true 我只想打印 XXXX 中的信息 我一直在用 xml_grep 和 xmllint 撞墙,试图提取我认为非常简单的信息量。也许这些是错误的工具?一些pyth
是否可以(如果可以,如何)使用 xml_grep 从特定元素获取特定属性的值?我好像只能输出标签之间的信息。 例子: Menten K
如何使用 xml_grep 访问通过 XPath 指定的属性值? 我已经尝试过: # svn info http://unladen-swallow.googlecode.com/svn/trunk/
我是一名优秀的程序员,十分优秀!