Как отобразить каждую запись в новой строке?

#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>