1

xsl構文に問題があります:これは私のxslです:

<xsl:stylesheet version="1.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:html="http://www.w3.org/Profiles/XHTML-transitional"     exclude-result-prefixes="html">
 <xsl:output method="xml" omit-xml-declaration="yes" indent="no"        encoding="utf-8" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"     doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />
  <xsl:param name="objectDoc" />
 <xsl:template match="/">


                <xsl:for-each select="/articolo/foto-group/fg-foto">
                <div class="Image_container">
                      <div class="EM_Story_Image_{position()}"></div>
                </div>
                <div class="Caption"><xsl:value-of select="/articolo/foto-group[position()]/foto-dida"/></div>
                </xsl:for-each>

    </xsl:template>

</xsl:stylesheet>

そしてこれは私のxml:

<articolo>
    <foto-group id="U50253517593AED">
        <fg-foto id="kYjG"/>
        <foto-dida class="dida" id="kSo">
            <p>Heloooooooooooo </p>
        </foto-dida>
    </foto-group>
    <foto-group id="U50253517593c0E">
        <fg-foto id="kNTF"/>
    </foto-group>
    <foto-group id="U50253517593h4B">
        <fg-foto id="kRtH"/>
    </foto-group>
</articolo>

私が持っているのはこのxmlです:

<!DOCTYPE div PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<div class="Image_container">
    <div class="EM_Story_Image_1"/></div>
<div class="Caption">Heloooooooo</div>
<div class="Image_container">
    <div class="EM_Story_Image_2"/></div>
<div class="Caption">Heloooooooo </div>
<div class="Image_container">
    <div class="EM_Story_Image_3"/></div>
<div class="Caption">Heloooooooo </div>

しかし、私が期待するのはこれです:

<!DOCTYPE div PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<div class="Image_container">
    <div class="EM_Story_Image_1"/></div>
<div class="Caption">Heloooooooo</div>
<div class="Image_container">
    <div class="EM_Story_Image_2"/></div>
<div class="Caption"> </div>
<div class="Image_container">
    <div class="EM_Story_Image_3"/></div>
<div class="Caption"> </div>

したがって、基本的に正しく機能していない命令は次のとおりです。

<xsl:value-of select="/articolo/foto-group[position()]/foto-dida"/>

位置の代わりに原因私はそれがで動作するので数(1、2、3)を期待します

<div class="EM_Story_Image_{position()}"></div>

代わりに、インデックスがないかのように、ノード1の「Helooooooo」の結果を常に取得します。postion()の周りの{}が見当たらないことがわかりますが、それらを追加すると、次のxslエラーが発生します。無効なXPath式予期しないトークン-"{position()}] / foto-dida" select = "/ doc / articolo / foto-group [{position()}] / foto-dida "

誰かが私が見逃しているものや私が変更すべきものを知っていますか?どうもありがとう

4

3 に答える 3

3

選択範囲のルートから開始する理由はありません。コンテキストはすでにあるので、その親fg-fotoの子を取得するだけです。foto-dida次のように変更する必要がありますxsl:value-of

<xsl:value-of select="../foto-dida/p"/>
于 2012-11-14T19:17:10.517 に答える
2

それが評価される時点で<xsl:value-of>、現在のコンテキストノードはfg-foto要素であるため、

<xsl:value-of select="../foto-dida" />

兄弟foto-dida要素の文字列値を提供する必要があります。

于 2012-11-14T19:24:14.010 に答える
1

それ以外の

 <xsl:value-of select="/articolo/foto-group[position()]/foto-dida"/>

これを試して

<xsl:value-of select="current()/foto-dida"/>
于 2012-11-14T19:27:22.957 に答える