Извините за вводящий в заблуждение заголовок, но я не знаю лучшего выражения для него. Я пытаюсь создать XSL, который предоставляет два разных основных раздела в моем выходном XML для совершенно разных типов данных. Тем не менее, я всегда получаю BOTH типы данных в EACH-вызове шаблона. Надеюсь, вы можете дать мне подсказку, как этого добиться. Это мои ингредиенты:Отдельный вывод с XSL
Источник XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<books>
<book>Xpages</book>
<book>XML</book>
</books>
<dvds>
<dvd>Star Wars</dvd>
<dvd>Prometheus</dvd>
</dvds>
</root>
XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<media>
<xsl:element name="booklist">
<xsl:call-template name="books"/>
</xsl:element>
<xsl:element name="dvdlist">
<xsl:call-template name="dvds"/>
</xsl:element>
</media>
</xsl:template>
<xsl:template name="books" match="books">
<xsl:apply-templates/>
</xsl:template>
<xsl:template name="dvds" match="dvds">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="books/book" name="book">
<xsl:value-of select="text()"/>
</xsl:template>
<xsl:template match="dvds/dvd" name="dvd">
<xsl:value-of select="text()"/>
</xsl:template>
</xsl:stylesheet>
Это то, что я получаю
<?xml version="1.0" encoding="UTF-8"?>
<media>
<booklist>
Xpages
XML
Star Wars
Prometheus
</booklist>
<dvdlist>
Xpages
XML
Star Wars
Prometheus
</dvdlist>
</media>
Но это то, что я хочу
<?xml version="1.0" encoding="UTF-8"?>
<media>
<booklist>
Xpages
XML
</booklist>
<dvdlist>
Star Wars
Prometheus
</dvdlist>
</media>
Как вы можете видеть, это удваивает мои 2 списка. Я думаю, это потому, что я использую шаблоны-шаблоны внутри двух шаблонов, но должен быть способ решить эту проблему. Любая помощь высоко ценится!
Спасибо! Не знал, что appy-templates также может иметь атрибут select. –