【发布时间】:2021-10-27 07:48:23
【问题描述】:
我已经在模板中编写了映射元素列表,并且我正在将每个循环与调用模板一起使用。但我没有得到所有元素。下面是一个例子:
<stores>
<store>
<books>
<book>
<section>1</section>
<bookinfo>
<bookdetails>
<A>Author</A>
<B>Dreams</B>
</bookdetails>
</bookinfo>
</book>
</books>
<books>
<book>
<section>2</section>
<bookinfo>
<bookdetails>
<A>Author</A>
<B>Dreams</B>
</bookdetails>
</bookinfo>
</book>
</books>
</store>
</stores>
在我的 xslt 中,我是这样写的:
<xsl:template match="/">
<StoreDetails>
<xsl:for-each select="//stores/store/books/book">
<xsl:call-template name="name">
<xsl:with-param name="param" select="."/>
</xsl:call-template>
</xsl:for-each>
</StoreDetails>
但这不起作用。如果我像<xsl:for-each select="//store/books/bookinfo"> 一样给出,那么它可以工作,但输出中缺少元素<section>1</section>。我想要element<book>下的所有元素。
这是我的预期输出:
<LocalStore>
<LocalDetails>
<section>1</section>
<BookType>Author</BookType>
<BookLPP>Dreams</BookLPP>
</LocalDetails>
<LocalDetails>
<section>2</section>
<BookType>Author1</BookType>
<BookLPP>Dreams1</BookLPP>
</LocalDetails>
</LocalStore>
我应该根据我现有的要求使用模板和变量。这是示例的明确链接: https://xsltfiddle.liberty-development.net/3MP42NC/2
【问题讨论】:
-
预期输出在哪里?从 xsl 片段中不清楚模板“名称”的用途是什么?
-
我正在映射 下的所有元素,现在调用该模板。我收到了多个名为
的重复标签。我想通过在文档内部迭代来获取 下的每个元素. -
显示你调用的那个模板的代码,加上你想要的输出和你得到的输出。
-
我现在分享了这个链接,马丁。请检查。
-
使用您发布的部分代码无法重现您报告的问题。请在minimal reproducible exampleminimal reproducible example在您的问题中发布所有必要的代码。