#xml #xslt
#xml #xslt
Вопрос:
Я пытался использовать XSL для вывода списка всех заказов в XML-файле, но между значениями нет линий разрыва
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:key name="qty" match="quantity" use="id_order"/>
<xsl:template match="/">
<output>
<orders>
<xsl:for-each select="output/orders/order">
<order>
<xsl:copy-of select="id|number|type|KG|PAL|M3"/>
<xsl:for-each select="key('qty', id)">
<xsl:element name="{unit}">
<xsl:value-of select="value"/>
</xsl:element>
</xsl:for-each>
</order>
</xsl:for-each>
</orders>
</output>
</xsl:template>
<xsl:template match="quantity">
<amount><xsl:apply-templates select="node()|@*"/></amount>
</xsl:template>
</xsl:stylesheet>
Как я могу отобразить каждую запись в новой строке?
Вот мой xml
<?xml version= "1.0"?>
<?xml-stylesheet type="text/xsl" href="display.xls"?>
<output>
<orders>
<order>
<id>1</id>
<number>10002</number>
<type>Loading</type>
<date>2013-01-01T02:30:00</date>
</order>
<order>
<id>2</id>
<number>10003</number>
<type>Loading</type>
<date>2013-01-01T010:30:00</date>
</order>
<order>
<id>3</id>
<number>10004</number>
<type>Loaded</type>
<date>2013-01-01T12:30:00</date>
</order>
</orders>
<quantities>
<quantity>
<id_order>1</id_order>
<unit>KG</unit>
<value>1000</value>
</quantity>
<quantity>
<id_order>1</id_order>
<unit>PAL</unit>
<value>3</value>
</quantity>
<quantity>
<id_order>1</id_order>
<unit>M3</unit>
<value>1.5</value>
</quantity>
<quantity>
<id_order>2</id_order>
<unit>KG</unit>
<value>2000</value>
</quantity>
<quantity>
<id_order>2</id_order>
<unit>PAL</unit>
<value>4</value>
</quantity>
<quantity>
<id_order>3</id_order>
<unit>KG</unit>
<value>5000</value>
</quantity>
</quantities>
</output>
Я пробовал что-то с таблицей, но безуспешно..
Комментарии:
1. Я думаю, вы хотите, чтобы вывод HTML отображался в браузере.. В настоящее время выводится XML. Исправьте свой XSL, чтобы создать HTML-вывод, добавив «<br/>» для новой строки или как вы хотите, чтобы это было
Ответ №1:
amp;#xa; or amp;#10; = LF character
amp;#xd; or amp;#13; = CR character
Если ваш вывод — xml, то поместите следующую строку туда, где вам это нужно
<xsl:text>amp;#xa;</xsl:text>
or
<xsl:text>amp;#xd;amp;#xa;</xsl:text>