匹配路径和获取目标值将 XML 标记视为节点的一个好处是,一旦找到节点,就可以将其视为当前的数据的“目录” 。它不是一个真正的目录,至少不是文件系统意义上的目录,但它是一个可以查询的数据集合 。为了帮助你将目标和“里面”的数据分开,XMLStarlet 把你试图用 --match选项匹配的内容和用--value-of选项匹配的数据值进行了区分 。
假设你知道 节点包含几个元素 。这就是你的目标节点 。一旦到了这里,就可以使用 --value-of指定想要哪个元素的值 。要查看所有元素,可以使用点(.)来代表当前位置:
$ xmlstarlet sel --template \--match '/xml/os/linux/distribution/spin' \--value-of '.' --nl myfile.xml \LiveFedoraEverything与浏览 DOM 一样,可以使用 XPath 表达式来限制返回数据的范围 。在本例中,我使用 last函数来检索spin节点中的最后一个元素:
$ xmlstarlet select --template \--match '/xml/os/linux/distribution/spin' \--value-of '*[last()]' --nl myfile.xmlEverything在本例中,我使用 position函数选择spin节点中的特定元素:
$ xmlstarlet select --template \--match '/xml/os/linux/distribution/spin' \--value-of '*[position() = 2]' --nl myfile.xmlFedora--match和--value选项可以重叠,因此如何将它们一起使用取决于你自己 。对于示例 XML,这两个表达式执行的是相同的操作:
$ xmlstarlet select--template \--match '/xml/os/linux/distribution/spin' \--value-of '.' \--nl myfile.xmlLiveFedoraEverything$ xmlstarlet select --template \--match '/xml/os/linux/distribution' \--value-of 'spin' \--nl myfile.xmlLiveFedoraEverything熟悉 XMLXML 有时看起来过于冗长和笨拙,但为与之交互和构建的工具却总是让我吃惊 。如果你想要好好使用 XML,那么 XMLStarlet 可能是一个很好的切入点 。下次要打开 XML 文件查看其结构化数据时,请尝试使用 XMLStarlet,看看是否可以查询这些数据 。当你对 XML 越熟悉时,它就越能作为一种健壮灵活的数据格式而为你服务 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- pdf转ppt简单方法 如何将pdf转化为ppt
- 预言2022年下半年将会发生什么事 疫情过后必有大灾
- 邮政寄信怎么寄
- 数据库常用sql语句 sql语句格式化时间格式
- 高校毕业生创新高 909万毕业生将涌向哪里?
- 国内机票燃油附加费将恢复征收 机票燃油附加费怎么收
- 中年零基础创业 人到中年如何创业
- facebook公司的招聘案例 Facebook将公司名改为Meta
- 白领桌前的养生健身操
- 什么姿势伤腰椎 最伤腰的6个姿势