1

在 xmlstarlet 中如何选择 xmlns 属性的值?

我试过了

xml sel -t -v //@xmlns input.xml

但没有得到任何结果。另一方面

xml sel -t -v //@id input.xml

按预期打印所有 id。我需要在 xmlns 前面加上一些命名空间吗?如果是,那是什么?

4

1 回答 1

1

在 XPath 数据模型中,属性和命名空间是不同的节点类型。源 XML 中的命名空间声明成为数据模型中的命名空间节点,而不是属性节点,并且使用命名空间轴而不是属性轴来选择它。在命名空间节点中,名称是命名空间前缀,值是命名空间 URI。如果要查找文档中的所有默认(未命名)命名空间节点,则需要//namespace::*[name()='']

于 2013-05-23T21:24:02.327 回答