xml格式化工具有哪些 notepad转化xml格式插件( 二 )

  
想象一下 , 示例 XML 文件包含以 1 开头的所有 Fedora 版本 。要查看与旧名称 “Fedora Core” 关联的所有版本号(该项目从版本 7 开始删除了名称中的 “Core”) , 请执行以下操作:  
$ xmlstarlet sel –template–value-of \\’/xml/os/linux/distribution[name = \\”Fedora Core\\”]/release\\’–nl myfile.xml654321  
通过将路径的 –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.xmlLiveFedoraEverything  
与浏览 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熟悉 XML  
【xml格式化工具有哪些 notepad转化xml格式插件】XML 有时看起来过于冗长和笨拙 , 但为与之交互和构建的工具却总是让我吃惊 。如果你想要好好使用 XML , 那么 XMLStarlet 可能是一个很好的切入点 。下次要打开 XML 文件查看其结构化数据时 , 请尝试使用 XMLStarlet , 看看是否可以查询这些数据 。当你对 XML 越熟悉时 , 它就越能作为一种健壮灵活的数据格式而为你服务 。  


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。