xml格式化工具有哪些「最新将xml格式化显示的步骤」

美好的1天即将在这里开始,下面就由笔者李涛来一起聊聊xml格式化工具有哪些,将xml格式化显示的步骤,还有干货数据,节点,元素等等各种精品,想要做好首先一定要把基本功练好了,否者是很难持续提升的。

学习解析 XML 通常被认为是一件复杂的事情,但它不一定是这样。XML 是高度严格结构化的,所以也是相对来说可预测的。也有许多其他工具可以帮助你使这项工作易于管理。

我最喜欢的 XML 实用程序之一是 XMLStarlet,这是一个用于终端的 XML 工具包,借助这个 XML 工具包,你可以验证、解析、编辑、格式化和转换 XML 数据。XMLStarLet 是个相对较小的命令,但浏览 XML 却充满潜力,因此本文演示了如何使用它来查询 XML 数据。

安装

XMLStarLet 默认安装在 CentOS、Fedora,和许多其他现代 Linux 发行版上,所以你可以打开终端,输入 xmlstarlet来访问它。如果 XMLStarLet 还没有被安装,你的操作系统则会为你安装它。

或者,你可以用包管理器安装 xmlstarlet

$ sudo dnf install xmlstarlet

在 macOS 上,可以使用 MacPorts或Homebrew。在 Windows 上,可以使用Chocolatey。

如果都失败了,你可以从 Sourceforge 上的源代码手动安装它。

用 XMLStarlet 解析 XML

有许多工具可以帮助解析和转换 XML 数据,包括允许你 编写自己的解析器的软件库,和复杂的命令,如fopxsltproc。不过有时你不需要处理 XML 数据;你只需要一个方便的方法从 XML 数据中来提取、更新或验证重要数据。对于随手的 XML 交互,我使用xmlstarlet,这是常见的处理 XML任务的一个典型的“瑞士军刀”式应用。通过运行--help命令,你可以看到它提供哪些选项:

$ xmlstarlet --help
Usage: xmlstarlet [

你可以通过在这些子命令的末尾附加 -help来获得进一步的帮助:

$ xmlstarlet sel --help
  -Q or --quiet             - do not write anything to standard output.
  -C or --comp              - display generated XSLT
  -R or --root              - print root element <xsl-select>
  -T or --text              - output is text (default is XML)
  -I or --indent            - indent output
[...]

用 sel 命令选择数据

可以使用 xmlstarlet select(简称sel)命令查看 XML 格式的数据。下面是一个简单的 XML 文档:


在 XML 文件中查找数据时,你的第一个任务是关注要探索的节点。如果知道节点的路径,请使用 -value of选项指定完整路径。你越早浏览文档对象模型(DOM)树,就可以看到更多信息:

$ xmlstarlet select --template \\
  --value-of /xml/os/linux/distribution \\
  --nl myfile.xml
      Fedora
      7
      Moonshine
     
        Live
        Fedora
        Everything     
     
      Fedora Core
      6
      Zod

--nl代表“新的一行”,它插入大量的空白,以确保在输入结果后,终端在新的一行显示。我已经删除了样本输出中的一些多余空间。

通过进一步深入 DOM 树来凝聚关注点:

$ xmlstarlet select --template \\
  --value-of /xml/os/linux/distribution/name \\
  --nl myfile.xml
Fedora
Fedora Core

条件选择

用于导航和解析 XML 的最强大工具之一被称为 XPath。它规范了 XML 搜索中使用的语法,并从 XML 库调用函数。XMLStarlet 能够解析 XPath 表达式,因此可以使用 XPath 函数来有条件的进行选择。XPath 具有丰富的函数,,但我觉得 Mozilla 的 XPath 文档更简洁。

可以使用方括号作为测试函数,将元素的内容与某个值进行比较。下面是对 元素的值的测试,它仅返回与特定匹配相关联的版本号。

想象一下,示例 XML 文件包含以 1 开头的所有 Fedora 版本。要查看与旧名称 “Fedora Core” 关联的所有版本号(该项目从版本 7 开始删除了名称中的 “Core”),请执行以下操作:

$ xmlstarlet sel --template \\
  --value-of \'/xml/os/linux/distribution[name = \"Fedora Core\"]/release\' \\
  --nl myfile.xml
6
5
4
3
2
1

通过将路径的 --value-of更改为
/xml/os/linux/distribution[name=“Fedora Core”]/codename
,你便可以查看这些版本的所有代号。

匹配路径和获取目标值

将 XML 标记视为节点的一个好处是,一旦找到节点,就可以将其视为当前的数据的“目录”。它不是一个真正的目录,至少不是文件系统意义上的目录,但它是一个可以查询的数据集合。为了帮助你将目标和“里面”的数据分开,XMLStarlet 把你试图用 --match选项匹配的内容和用--value-of选项匹配的数据值进行了区分。

假设你知道 节点包含几个元素。这就是你的目标节点。一旦到了这里,就可以使用 --value-of指定想要哪个元素的值。要查看所有元素,可以使用点(.)来代表当前位置:

$ xmlstarlet sel --template \\
  --match \'/xml/os/linux/distribution/spin\' \\
  --value-of \'.\' --nl myfile.xml \\
Live
Fedora
Everything

与浏览 DOM 一样,可以使用 XPath 表达式来限制返回数据的范围。在本例中,我使用 last函数来检索spin节点中的最后一个元素:

$ xmlstarlet select --template \\
  --match \'/xml/os/linux/distribution/spin\' \\
  --value-of \'*[last()]\' --nl myfile.xml
Everything

在本例中,我使用 position函数选择spin节点中的特定元素:

$ xmlstarlet select --template \\
  --match \'/xml/os/linux/distribution/spin\' \\
  --value-of \'*[position() = 2]\' --nl myfile.xml
Fedora

--match--value选项可以重叠,因此如何将它们一起使用取决于你自己。对于示例 XML,这两个表达式执行的是相同的操作:

$ xmlstarlet select  --template \\
  --match \'/xml/os/linux/distribution/spin\' \\
  --value-of \'.\' \\
  --nl myfile.xml
Live
Fedora
Everything     

$ xmlstarlet select --template \\
  --match \'/xml/os/linux/distribution\' \\
  --value-of \'spin\' \\
  --nl myfile.xml
Live
Fedora
Everything

熟悉 XML

XML 有时看起来过于冗长和笨拙,但为与之交互和构建的工具却总是让我吃惊。如果你想要好好使用 XML,那么 XMLStarlet 可能是一个很好的切入点。下次要打开 XML 文件查看其结构化数据时,请尝试使用 XMLStarlet,看看是否可以查询这些数据。当你对 XML 越熟悉时,它就越能作为一种健壮灵活的数据格式而为你服务。

好了,今天就给各位讲到这里,希望更多的新手朋友可以得到帮助,认认真真、仔细看完了xml格式化工具有哪些「最新将xml格式化显示的步骤」,觉得收获很多知识,那就点个赞吧!赠人玫瑰有留余香!

本文发布者:万事通,不代表寂寞网立场,转载请注明出处:https://www.jimowang.com/p/10532.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jimowangmail@126.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年10月19日 09:25
下一篇 2022年10月19日 09:27

相关推荐

  • 俄罗斯为什么和乌克兰冲突的原因「必看:俄乌冲突的根本原因是什么」

    哈喽,小伙伴们大家好,今天李宗翰废话就不多说了,直接上干货,标题:俄罗斯为什么和乌克兰冲突的原因,俄乌冲突的根本原因是什么,以及关于标题,文章,舰队等等一系列的相关事项,整理总结之后,我就想着写这篇文章和大家分享一下,因为毕竟新手朋友还是很多的! 谁也没有料想到,俄乌最终真的兵戎相见。在演变成全面战争前,乌克兰民众甚至断言:两家本是同根生,西方国家瞎起哄,政…

    2022年11月2日 自媒体
  • 演员杨采妮的老公是谁「必看:47岁杨采妮晒照:最新老公罕露面」

    小伙伴们哈喽,这次其他的何思颖就不说了,主要就是来讲讲演员杨采妮的老公是谁,47岁杨采妮晒照,老公罕露面,以及老公,眼窝,合照等等各种一系列的相关干货,这些其实都是一些必备知识,只是有些时候我们没有遇到就没有去了解而已! 近日,著名演员杨采妮在自己的社交媒体上晒出了一家四口的庆生合照,杨采妮的久违出现也引起网友热议。 照片中,杨采妮身穿简单的白色短袖和牛仔短…

    2022年11月3日 自媒体
  • 谈恋爱的唯一目的就是吃苦「最新最后挑选最烂的男人」

    很高兴你能坚持经常过来支持笔者:韩济坤,今天就来说说关于谈恋爱的唯一目的就是吃苦,最后挑选最烂的男人,还有目的,男人,不是,眼光,身边等等等各种相关干货内容,如果你是老司机,你可能觉得很简单,但如果你是新手,你可能就不这么想了。 大家在谈恋爱时,挑选男人的眼光有时候真的不行,哪个男人最烂就挑选哪个,最后还不是选择分手。近日,杨笠在节目上称,谈恋爱的唯一目的就…

    2023年1月12日
  • 什么车改灯需要解码器「新手必看:为什么有的车改灯需要解码」

    今天秦虎峰给大家带来了这篇什么车改灯需要解码器,为什么有的车改灯需要解码干货,还有关于大灯,汽车,解码器,车灯,方法这些的内容,精心为你准备的干货,通过这篇文章相信你能有所收货! 今天给大家普及一个车灯改装的专业技术性问题,汽车大灯解码,有哪些解码方法? 汽车换灯为什么要解码?改装车灯解码器是什么意思?那些车型改灯需要解码?解码器是干什么用的?为什么要解码?…

    2023年1月26日 自媒体
  • 黑天鹅外卖员一个月挣多少「最新黑天鹅外卖是什么干嘛的」

    很高兴又和小伙伴们见面了,这次秦艺菲主要整理了一些关于黑天鹅外卖员一个月挣多少(黑天鹅外卖是什么干嘛的)的事情,还有外卖,蛋糕,身高相关的各种内容,如果你是老司机,你可能觉得很简单,但如果你是新手,你可能就不这么想了。 相信很多小伙伴都听说过关于“黑天鹅外卖员”的消息,从网上的消息来看,黑天鹅外卖员的产值都不低,而且工资高,这就让很多骑手小哥心动的了。那么黑…

    自媒体 2022年12月17日
  • 微商做什么好赚钱「附:快速成为一个成功微商的秘诀」

    最近有很多朋友问沈罡霆关于微商做什么好赚钱,快速成为一个成功微商的秘诀的事情,还有产品,贤良,大众等各种干货文章,其实这个内容对于新手来说还是挺重要的,因为涉及面很大。如果你认真读了,一定会有所收获! 人们说,三百六十行,行行出状元。没错,有的微商,我们只给两个字——屏蔽!有的人却可以把它做成商贾巨甲。如果你想问一个为什么,可以看看下面的建议。 你的对象是大…

    2022年10月23日