1

XML リスト要素に特定のタイプのノードしかないことを確認する XPath 式が必要です。例:

リストに画像しかないかどうかを知る必要があります。

<?xml version="1.0" encoding="UTF-8"?>

<mc type="group"> 
  <mc type="list"> 
    <mc type="group"> 
      <mc type="image"/> 
    </mc>  
    <mc type="group"> 
      <mc type="image"/> 
    </mc>  
    <mc type="group"> 
      <mc type="image"/> 
    </mc>  
    <mc type="group"> 
      <mc type="image"/> 
    </mc> 
  </mc> 
</mc>

上記の XML は TRUE です

<?xml version="1.0" encoding="UTF-8"?>

<mc type="group"> 
  <mc type="list"> 
    <mc type="group"> 
      <mc type="image"/> 
    </mc>  
    <mc type="group"> 
      <mc type="image"/> 
      <mc type="text"/>
    </mc>  
    <mc type="group"> 
      <mc type="image"/> 
    </mc>  
    <mc type="group"> 
      <mc type="image"/> 
    </mc> 
  </mc> 
</mc>

上記の XML は FALSE です

4

4 に答える 4

2

使用:

not(//mc[not(mc) and @type[not(. = 'image')]])

これは、属性の string-value が string と異なる「leaf」要素true()がない場合にのみ評価されます。mctype"image"

解説:「二重否定の法則」の正しい使い方。

于 2012-08-23T16:01:15.223 に答える
1

not(/mc/mc[@type = 'list']//mc[not(@type = 'image')])ドキュメント ノードをコンテキスト ノードとして開始するか、属性を持つ要素not(.//mc[not(@type = 'image')])から開始するかを確認できます。mctype="list"

于 2012-08-23T14:38:17.930 に答える
0

one-or-more: などの否定を使用できますnot(one-or-more(mc[not(@type = 'image')]))

于 2012-08-23T14:40:44.957 に答える
0

または、ばかげた/単純な方法で、イメージ/グループ/リストでない場合、すべての mc 要素をチェックします。

not(//mc[not(@type = ("image", "group", "list"))])
于 2012-08-23T15:20:57.993 に答える