1

当我的数据以正确的格式从数据库中导出时。当我将它放入我的 XSLT 样式表时,它会将所有内容放在一条直线上。有没有办法来解决这个问题?谢谢您的帮助。

样式表

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:user-scripts" xmlns:aras="http://www.aras.com">
      <xsl:output method="html" omit-xml-declaration="yes" standalone="yes" indent="yes" cdata-section-elements="script msxsl:script"></xsl:output>
      <xsl:template match="Item[@type='Order']">
        <html>
          <body>
    <!-- Implementation Notes -->
            <table class="row">
              <tr>
                <td class="section" width="100%">
                  <b>Implementation Notes</b>
                </td>
          </tr>
            <tr>
                <td class="fieldValue">
                  <xsl:value-of select="implementation_notes"></xsl:value-of>
                </td>
            </tr>
         </table>
            <table class="row" height="10">
              <tr>
                <td></td>
              </tr>
            </table>
       </body>
      </html>
     </xsl:template>
     </xsl:stylesheet>

数据

    <?xml version="1.0" encoding="utf-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
      <SOAP-ENV:Body>
        <Result>
          <Item type="Order">
            <implementation_notes>New Order.
    1. Instructions A
    1.1 Instructions A.1
    2. Instructions B
    2.1 Instructions B.1
    3. Instructions C
    3.1 Instructions C.1
    </implementation_notes>
         </Item>
        </Result>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
4

2 回答 2

1

一个简单的方法来做到这一点

代替:

              <xsl:value-of select="implementation_notes"></xsl:value-of>

              <pre><xsl:value-of select="implementation_notes"/></pre>

请注意

这根本不是 XSLT 问题。它是一个HTML。观察到的浏览器行为是由于浏览器将一组空白字符表示为单个空格的规则。

于 2013-06-14T14:50:12.597 回答
0

似乎您喜欢将 implementation_notes 的内容作为表中的行。

我认为您应该重新考虑您的数据库输出并在每一行周围放置一个 xml 标记。
如果这是不可能的,并且您想通过“行尾”使用 xslt 1.0 分割文本,则必须使用递归模板调用分割文本。

或者,如果不需要中继表行, <pre>..</pre>请在您的内容周围放置一个 hmtl。

 <pre>
    <xsl:value-of select="implementation_notes"/>
 </pre>
于 2013-06-14T14:55:40.760 回答