0

プロパティに基づいて xml をフィルタリングするのに少し助けが必要です

次の形式の XML があります。

<?xml version="1.0" encoding="utf-8" ?>
<root id="-1">
    <LandingPage id="1067" parentID="1050" level="2" 
        writerID="0" creatorID="0" nodeType="1066" template="1073" 
        sortOrder="0" createDate="2013-02-04T14:29:39" 
        updateDate="2013-02-07T11:08:27" nodeName="About" 
        urlName="about" writerName="Pete" creatorName="Pete" 
        path="-1,1050,1067" isDoc="">
      <hideInNavigation>0</hideInNavigation>
    </LandingPage>
</root>

私がする必要があるのは、hideInNavigation = 0 のこれらの要素をフィルタリングすることです

私は次のことを試しました:

[@isDoc and @hideInNavigation ='0']

(@isDoc属性も必要です)しかし、これはタグhideInNavigationの属性である場合にのみ機能することに気付いたので、試しましたLandingPage

value['hideInNavigation'='0']

しかし、これも何もしなかったようです。答えをたくさん探した後、私は何も思いつかなかったので、それが可能かどうか疑問に思っていました

4

3 に答える 3

1

現在のコンテキストが<root>要素であると仮定すると、次のように hideInNavigation = 0 で LandingPages を選択できます。

LandingPage[hideInNavigation = '0']

XSLT を共有していただける場合は、この特定のケースで XSLT を修正する方法について、より具体的なガイダンスを提供します。

最初の例の@isDocテストは、あなたが望んでいたものでしたか? isDoc属性とhideInNavigation値が 0のランディング ページをフィルター処理しますか?

于 2013-02-07T16:16:33.443 に答える
1

'hideInNavigation'='0'は、異なることが保証されている2 つの文字列'hideInNavigation'と を比較します。'0'

ルートのコンテキストではLandingPage[hideInNavigation=0]、例の LandingPage 要素と一致します。

于 2013-02-07T16:17:43.053 に答える
0

この XPath は、isDoc 属性が空で、hideInNavigation 要素のコンテンツが「0」であるすべての LandingPage を返します。

//LandingPage[@isDoc="" and hideInNavigation='0']
于 2013-02-07T16:42:53.770 に答える