我有一个像这样的XML:
<root> <foo src=""/> <foo src="bar"/> <foo /> </root>
我想知道哪些元素有一个src属性,它们是空的,有哪些值.
我来的最远的是
$xmlstarlet sel -t -m '//foo' -v @src -n foo.xml bar
虽然没有告诉我第三个foo缺少属性.
这将选择没有src属性的foos.
原文链接:https://www.f2er.com/xml/292955.html/root/foo[not(@src)]
对于其他两个任务,我将使用@TOUDIdel和@Dimitre Novatchev指出的表达式的混合:
/ root / foo [@src和string-length(@src)= 0] for foos with a空src,和/ root / foo [@src和string-length(@src)!= 0]内容内容.
除此之外,我将避免使用“任何地方”选择器,(除非*通配符),除非你确定这是你需要的. //就像让你非常渴望的狗嗅一块布,告诉它,“带给我一切闻起来像这样,无论你找到什么”.你不会相信可以决定带回来的奇怪的废话.