0

このxsltを理解しようとしています。

以下のxsltコマンドは正確に何を選択しますか?「following-sibling」、「aic」、「pstyle」とは何ですか?

「aic」は名前空間のようです。

以下のxsltが機能するxml入力は何ですか?

<xsl:stylesheet exclude-result-prefixes="aic" 
    version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:aic="http://ns.adobe.com/AdobeInCopy/2.0/" >

<xsl:template match="/">

    <xsl:value-of select="following-sibling::aic:pstyle"/>
</xsl:template>
</xsl:stylesheet>
4

1 に答える 1

1
following-sibling::aic:pstyle
  • following-siblingaxisであり、ノードを探す「方向」を示します。この場合、ドキュメント順で現在のコンテキスト ノードの後に​​あるが、現在のノードと同じ親を共有するノードを調べます。軸を指定しない場合、デフォルトはchildで、現在のコンテキスト ノードの子ノードを探します。

  • aic:pstyleローカル名がで、名前空間 URI が(スタイルシートでプレフィックスにマップされているもの) である要素を探すセレクターです。pstylehttp://ns.adobe.com/AdobeInCopy/2.0/aic

ソース XML は同じプレフィックスを使用する必要はありません。たとえば、式は次のような要素に一致します。

<pstyle xmlns="http://ns.adobe.com/AdobeInCopy/2.0/">

また

<foo:pstyle xmlns:foo="http://ns.adobe.com/AdobeInCopy/2.0/">

元の XML で。

JLRishe が指摘するように、現在のコンテキストがドキュメント ノード/である場合、この特定の XPath は何にも一致しません。式が意味を持つためには、現在のノードが要素 (またはコメント、処理命令、またはコメント) であるコンテキストで実行する必要があります。テキスト ノード) 少なくとも 2 レベル下、つまりドキュメント要素の子またはそれより下。

<example xmlns="http://ns.adobe.com/AdobeInCopy/2.0/">
  <pstyle id="1"/>
  <foo/>
  <pstyle id="2"/>
  <pstyle id="3"/>
</example>

要素をコンテキスト ノードとして実行するとfoo、式は pstyle 要素 2 と 3 を選択しますが、1 は選択しません。

于 2013-02-06T12:54:21.213 に答える