xml - Shell:从 XML 文件中提取特定 block

标签 xml linux shell xml-parsing

我有一个 xml 文件,其中的相同标签连续多次出现。我只需要将那组标签提取为数组。

xml 文件如下所示:

...
<otherTags>
<myTag>
  <abc/>
</myTag>
<myTag>
  <abc/>
</myTag>
<myTag>
  <abc/>
</myTag>
<otherTags>
...

我的输出应该是这样的:

<myTag>
  <abc/>
</myTag>

<myTag>
  <abc/>
</myTag>

<myTag>
  <abc/>
</myTag>

最佳答案

如果格式这么简单,就用

$ awk '/<myTag>/,/<\/myTag>/' inputfile
<myTag>
  <abc/>
</myTag>
<myTag>
  <abc/>
</myTag>
<myTag>
  <abc/>
</myTag>

但是有些工具是为解析复杂的 XML 文件而设计的,如果它变得更复杂,您应该使用它们。一个叫xml-grep .您可能还想熟悉 XPath technology .

关于xml - Shell:从 XML 文件中提取特定 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20439838/

相关文章:

ruby-on-rails - Rails Server 在 Ubuntu 上启动失败(之前是在 MAC 上),直接退出

bash - 在 Mac OSX 上从源代码编译 vim 并出现 'shell returned 127' 错误?

linux - 将输出通过管道传输到 shell 脚本 |亚马逊Linux

mysql - 在 EC2 (ubuntu) 上设置 Mysql。 XFS 有问题

java - 使用 Eclipse Luna 创建 Java、XML 应用程序

Android Studio 无法解析 ?android : resources

xml - 如何在 XSD 中表示子元素中的重复?

linux权限组

node.js - 获取node.js中所有嵌套子进程的标准输出

php - 段落中第一句的 Xpath 表达式