1

ancestor::Xpathで軸を使用する必要がない場所にこの変換を作り直す方法を見つけようとしています:

<xsl:template match="p[ancestor::p]">
     <xsl:apply-templates select="node() except ppr" />
</xsl:template>

ソースの例:

<root>
  <p>
     <p/>
     <section>
        <p/>
     </section>
     <ppr/>
     <content/>
     <p/>
     <picture/>
  </p>
</root>

望ましい出力:

<root>
  <p>
     <section>
     </section>
     <ppr/>
     <content/>
     <picture/>
  </p>
</root>

<p>これらの要素の場所はランダムであり、元のソース ドキュメントにはパターンがないため、明示的な Xpath または配置を使用してこれらの要素を取得することはできません。

私が使用しないようにしているancestor::理由は、私が使用している XSLT プロセッサがその Xpath 式の評価に 30 ~ 50 秒以上かかっているためです。この質問を、使用している XSLT プロセッサやセットアップでの他の実装に関するものにしたくはありませんが、目前の質問に焦点を当てたいと思いますancestor::

前もって感謝します。

4

1 に答える 1

3

次のように単純であることが判明しました:

//p//p
于 2013-02-08T00:03:01.810 に答える