0

そのようなXMLノードを作成するコードがあります

foreach(var books in booksCollection)
            {
                XmlText bookTitle = xmlDoc.CreateTextNode(books.bookTitle);
                bookTitle.AppendChild(bookTitle);

                XmlText companyTitle = xmlDoc.CreateTextNode(books.companyTitle);
                CompanyTitle.AppendChild(companyName);

                XmlText author = xmlDoc.CreateTextNode(books.author);
                Author.AppendChild(author);
            }

たくさんのデータがあるので、リストを使用しています。XSLT で「position()」を使用すると、リスト カウントに基づいてデータを出力できます。IE 3 つのアイテムがある場合、次のように 3 つのアイテムが出力されます。

  <xsl:for-each select="bookInfo" >  // my code
                <xsl:number value="position()"/>
                <xsl:value-of select="bookTitle" /><br/>
                <xsl:value-of select="companyTitle" /> <br/>
                <xsl:value-of select="author" /><br/>
            </xsl:for-each>

問題は、「position()」を使用した場合の出力に、私が望まない番号が付けられていることです。番号を付けずにリストを印刷するにはどうすればよいですか?

1a_bookTitle   //--> a_bookTitle instead of 1a_bookTitle
a_companyTitle
an_author

2b_bookTitle //--> b_bookTitle instead of 2b_bookTitle
b_companyTitle
ban_author

3c_bookTitle  //--> c_bookTitle instead of 3c_bookTitle
c_companyTitle
can_author
4

1 に答える 1

0

何かが欠けていない限り、この行を削除してください

 <xsl:number value="position()"/>

xsl:numberは単純に番号を出力しますが、どの要素が選択されるかは制御しません。

于 2012-12-07T13:05:18.373 に答える