利用Shell解析处理XML的方法汇总

yizhihongxing

利用Shell解析处理XML的方法汇总

在Shell下解析XML文件有多种方法,这里对一些常用的做一个汇总。以下所有示例都基于以下的XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
  <book id="bk101">
    <author>Gambardella, Matthew</author>
    <title>XML Developer's Guide</title>
    <price>44.95</price>
    <publish_date>2000-10-01</publish_date>
    <description>An in-depth look at creating applications 
      with XML.</description>
  </book>

  <book id="bk102">
    <author>Ralls, Kim</author>
    <title>Midnight Rain</title>
    <price>5.95</price>
    <publish_date>2000-12-16</publish_date>
    <description>A former architect battles corporate zombies, 
      an evil sorceress, and her own childhood to become queen 
      of the world.</description>
  </book>
</catalog>

使用grep和正则表达式解析XML

我们可以利用 grep 命令和正则表达式来解析 XML 文件中指定标签中的内容。下面的命令可以提取所有 author 标签中的内容:

$ grep '<author>.*</author>' example.xml | sed -e 's#<author>\(.*\)</author>#\1#'
Gambardella, Matthew
Ralls, Kim

其中 grep 命令根据正则表达式提取了所有 <author> 标签中的内容,然后使用 sed 命令删除了标签。

使用xmlstarlet解析XML

可以利用 xmlstarlet 解析 XML 文件。xmlstarlet 是一个命令行工具,可以用于检查、查询、编辑和根据 XML 文件创建命令行策略。

  • 使用以下命令可以打印出所有 author 标签的内容:
$ xmlstarlet sel -t -m "//author" -v . -n example.xml
Gambardella, Matthew
Ralls, Kim

其中 sel 命令表示查询(select)模式, -t 参数表示模板(template)模式, -m 参数表示匹配模式, //author 表示匹配所有 author 标签, -v . 表示输出标签中的内容, -n 表示输出后换行。

  • 使用以下命令可以打印出所有 book 标签中 id 属性值为 bk102titleprice 标签的内容:
$ xmlstarlet sel -t -m "//book[@id='bk102']" -v title -n -v price -n example.xml
Midnight Rain
5.95

其中 [@id='bk102'] 表示匹配 id 属性值为 bk102book 标签,-v 参数可以指定要输出的标签, -n 表示输出后换行。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用Shell解析处理XML的方法汇总 - Python技术站

(1)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • HTML5之HTML元素扩展(上)—新增加的元素及使用概述

    HTML5是HTML语言的第五个版本,为了使得HTML能够更好地精准描述现代网页的内容和结构,增加了很多新的元素。本篇攻略主要讲解新增加的HTML元素及使用概述。 1. 新增加的元素 HTML5 新增的元素共有以下几种: 1.1 section 元素 section 元素表示文档或应用程序中的一个通用区域或部分,常用于页眉、页脚、侧边栏和文档的主要内容。 示…

    html 2023年5月30日
    00
  • 抖音视频浏览量可以赚钱吗?怎么赚钱

    以下是“抖音视频浏览量可以赚钱吗?怎么赚钱”的完整攻略: 抖音视频浏览量可以赚钱吗?怎么赚钱 抖音是一款非常流行的短视频应用程序,许多人都在上面发布自己的视频。那么,抖音视频浏览量可以赚钱吗?下面是赚取抖音视频浏览量的攻略。 赚取抖音视频浏览量的方法 广告收入:如果你的抖音视频浏览量很高,你可以通过在视频中插入广告来赚取收入。抖音会根据你的视频浏览量和受众群…

    html 2023年5月18日
    00
  • mybatis注解与xml常用语句汇总

    下面就为你详细讲解mybatis注解与xml常用语句汇总的完整攻略。 一、Mybatis注解与XML常用语句汇总 在Mybatis中,我们可以使用注解或XML来编写SQL语句。虽然两者各有优劣,但其本质是一致的,都是用于定义SQL语句和数据库操作。在实际开发中,我们可以根据具体情况选择使用注解或XML编写SQL语句。下面分别介绍注解和XML中常用的SQL语句…

    html 2023年5月30日
    00
  • 织梦dedecms网站模板乱码的几种解决方法

    下面是“织梦dedecms网站模板乱码的几种解决方法”的完整攻略: 织梦dedecms网站模板乱码的几种解决方法 1. 修改php.ini文件 在织梦dedecms网站模板中出现乱码问题,有时是因为php.ini文件编码格式和网站的编码格式不一致导致的。可以尝试修改php.ini文件来解决这个问题。 步骤如下: 找到php.ini文件,一般在php安装目录下…

    html 2023年5月31日
    00
  • mybatisplus使用xml的示例详解

    下面是关于“mybatisplus使用xml的示例详解”的攻略: 简介 Mybatis Plus 是 Mybatis 的增强工具库,简化 MyBatis 开发。Mybatis Plus 提供了常用的 CRUD 操作、分页查询、自动生成主键、SQL 注入、条件构造器、多租户分页方案、数据安全、性能提升等功能。 在 Mybatis Puls 中,我们可以使用 X…

    html 2023年5月30日
    00
  • PHP asXML()函数讲解

    当使用PHP操作XML文件时,asXML()函数是一个非常有用的函数。它可以将XML对象转换为XML文本格式的字符串,并返回转换后的结果。 1. asXML()函数的语法 asXML()函数的语法非常简单,其语法如下: string SimpleXMLElement::asXML( [ string $filename ] ) 该函数接受一个可选参数$fil…

    html 2023年5月30日
    00
  • Mabitis中的#与$符号区别及用法介绍

    与$符号是在Mabitis框架中常用的符号,它们分别表示不同的含义和用法。 #符号 定义 在Mabatis框架中,#符号被用来表示一个占位符,可以将该占位符的值动态传入SQL语句中。#符号与$符号的区别在于#符号传入的值会被自动添加单引号,使得传入的值变成字符串类型,而$符号传入的值不会被添加单引号,则传入的值类型按照原本的类型。 示例 <select…

    html 2023年5月30日
    00
  • ajax数据传输方式实例详解

    Ajax数据传输方式实例详解 什么是Ajax? Ajax(Asynchronous JavaScript and XML),即异步JavaScript和XML技术,在不刷新整个页面的情况下,通过后台异步传输数据并更新部分页面,提高用户体验。 使用Ajax的好处 减轻服务器压力。通过Ajax,可以只刷新需要更新的部分,减轻服务器的负担。 提高网站效率。通过Aj…

    html 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部