0

次のようなxml文字列があります

<root>
    <A id="1">This is an example</A>
    <B id="2">
            <C id="3">this is tag c</C>
    </B>
    <D id="4">this is tag d</D>
    <E id="5">
            <F id="6">this is tag f</F>
            <G id="7">this is tag g</G>
               .
               .
               .
    </E>
</root>

ここでは、単語を検索して正規表現 (Regular Expression) を使用してtag置換したいだけで、要素内でその単語を検索したくありません。つまり、検索と置換中に要素をスキップしたいのです。Xml Tag<E>...</E><E>...</E>

どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

2

これを行う最も簡単な方法は、環境によって異なります。つまり、要素Eをスキップすることを意味します。XSLTまたはXQueryでは、E要素の外部の正規表現に一致するテキストノードを見つける簡単な方法です。だろう

//text()[not(ancestor::E)][matches(.,'tag')]

他の環境では、類似したことを行うのが便利な場合とそうでない場合があります。

「要素Eをスキップする」とは、フォームのコンテンツが必要であることを意味する場合に注意してください

<A>This is a tricky example
   of the word t<E>hi, mom!</E>ag.</A>

「タグ」の検索でヒットを返すには、より複雑なソリューションが必要になります。

于 2012-09-18T16:24:24.477 に答える