如果这个问题已在
xmlsarlet
部分提出,我们深表歉意。我试图搜索它,但找不到,所以将其发布在这里。这样它将来也可以帮助我和其他新手。
作为
xmlstarlet
的新人我想学习它。那么XMLSTARLET
实用程序的专家能否指导一下如何开始学习它?我尝试在 google 上搜索,发现一些文档(IBM 的)并没有发现它们有什么帮助,因为我完全是 XML 方面的新手,如果专家可以在这里指导,我将不胜感激。
首先,我不是专家。所以这个答案在SO心态下被称为答案是非常“有争议的”。我希望有更多经验的人能够提出更好的如何开始的答案。
学习
xmlstarlet
并不像简单的grep
或sed
那么容易,但在我看来,它是处理xml文件的基础。
我的过程首先是熟悉 XPath 及其复杂性。
他们不是世界上最好的,但他们是一个开始。
熟悉
xmlstarlet
本身也不像听起来那么容易。一开始有很多尝试和错误。 文档只是一个开始,但并不是一个很大的帮助。它为您提供了如何实现目标的想法,但我经常遇到这些示例在实际场景中经常失败的情况。这是由于 xml 中的命名空间造成的。 xmlstarlet
在正确的命名空间上工作得很好。因此,如果您有一个 xml 文档,其中包含以下行
<?xml version="1.0" encoding="UTF-8"?>
<foo xmlns="namespaceURI">
...
</foo>
然后,如果您使用正确的命名空间(例如),
xmlstarlet
只会执行您要求它执行的操作:
xmlstarlet ed -N "N=namespaceURI" -u "//N:bar" -v "value" foo.xml
这可能不是很有帮助,但我希望它能让你走上正路。