【问题标题】:Carving elements from XML (xmlstarlet,awk,perl..)从 XML 雕刻元素 (xmlstarlet,awk,perl..)
【发布时间】:2014-05-17 22:35:37
【问题描述】:

我正在尝试从数百个 XML 文件中分割出部分。 XML 文档的结构类似于:

<document>
<nodes>
<node id=123>pages of txt</node>
<node id-=124>more example pages of txt and sub elements</node>
</nodes></document> 

我只是想提取所有&lt;node&gt; 元素。我一直在尝试使用 xmlstarlet:

xmlstarlet sel -t -c “/document/nodes”

问题是它只返回&lt;/nodes&gt;

我只需要提取以下例子:

<node id=123>pages of txt</node>
<node id-=124>more example pages of txt and sub elements</node>

谁能推荐一个更好的选择、工具或方法?非常感谢。

【问题讨论】:

  • 你到底想要什么输出?从您写的内容看来,您只需要从文件的任一端删除&lt;document&gt;&lt;nodes&gt;

标签: xml perl awk xmlstarlet


【解决方案1】:

只是你的 xpath 错误:

xmlstarlet sel -t -c '//node' 

此外,有效的 XML 要求所有属性值都被引用

<document>
<nodes>
<node id="123">pages of txt</node>
<node id="124">more example pages of txt and sub elements</node>
</nodes></document> 

我发现这个页面提供了很多有用的 xpath 示例:http://msdn.microsoft.com/en-us/library/ms256086(v=vs.110).aspx

【讨论】:

    猜你喜欢
    • 2013-07-16
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2021-05-07
    相关资源
    最近更新 更多