0

是否可以测试不具有某些内容和属性的某个 XML 属于另一个 XML 节点?

例如:

<a>
   <node/>
   <node>
      <node attr="attr1">
         <d>test</d>
      </node>
    </node>
   <node>
      <c attr="attr2">
         <d>test</d>
      </c>
   </node>
</a>

在这里我只需要选择<node>子内容正好是的节点

<node>
   <c attr="attr1">
      <d>test</d>
   </c>
</node>
4

1 回答 1

1
node[c[@attr = 'attr1'][d = 'test']]

将选择至少包含该内容的节点,如果您想要该内容,则必须添加进一步的约束,例如

node[count(@*) = 0][count(node()) = 1]
  [c[count(@*) = 1][count(node()) = 1][@attr = 'attr1'][d[. = 'test'][not(*)]]

(这假设您的样式表有<xsl:strip-space elements="*"/>,因此可以忽略纯空格文本节点)

于 2013-04-05T08:49:28.777 回答