使用 xmllint 跳过 XML 元素

skip XML element with xmllint

我关注XML:

<root>
  <Type1 name="">
    <Type2 name="">
      <Type3 name="">
        <finalType name="">
          <element value=""/>
        </finalType>
      </Type3>
    </Type2>
  </Type1>
</root>

我想达到<finalType>中元素的值,通常我这样写:

echo //root/Type1/Type2/Type3/finalType /element@  xmllint etc...

但是在我的应用程序中,finalType 可以是 Type1 或 Type2! , 所以我正在寻找类似的东西

echo //root/***/finalType /element@  xmllint etc...

但不幸的是它不起作用.. 你知道如何 "skip" Type1 , Type2 ...吗?

只需使用双斜杠(或descendant::):

echo ls /root//element            | xmllint --shell file.xml
echo ls /root/descendant::element | xmllint --shell file.xml