我希望我的 XSLT 看起來很漂亮并因此具有可讀性,這讓我感到內疚。所以我縮進并包括換行符。但是轉換從字面上理解這些(我理解為什么),但我不知道是否可以選擇排除這些。我進行了廣泛的搜索。我知道幾年前我找到了一個解決方案,但我不記得它是什么。
此轉換用于生成單行電子郵件主題,因此我不希望額外的空格和行回傳。
如何讓我的可讀 XSLT 具有我想要的單行文本輸出?
玩的例子:xsltransform.net
XML 輸入
<?xml version="1.0" encoding="UTF-8"?>
<response>
<OrderHeaderId>123456</OrderHeaderId>
<ProjectName>Project</ProjectName>
<RequiresApproval>true</RequiresApproval>
</response>
XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" />
<xsl:template match="/response">New Job: <xsl:value-of select="OrderHeaderId"/>:
<xsl:if test="RequiresApproval='true'">
Requires Approval!
</xsl:if>
<xsl:value-of select="ProjectName"/> - Acknowledgement from <xsl:value-of select="SellingCompanyName"/>
</xsl:template>
</xsl:stylesheet>
輸出
New Job: 123456:
Requires Approval!
Project - Acknowledgement from Acme
** 所需輸出**
New Job: 123456: Requires Approval! Project - Acknowledgement from Acme
uj5u.com熱心網友回復:
如果您希望樣式表縮進,請使用說xsl:text明顯式輸出文本:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="text" />
<xsl:template match="/response">
<xsl:text>New Job: </xsl:text>
<xsl:value-of select="OrderHeaderId"/>
<xsl:text>: </xsl:text>
<xsl:if test="RequiresApproval='true'">
<xsl:text>Requires Approval! </xsl:text>
</xsl:if>
<xsl:value-of select="ProjectName"/>
<xsl:text>- Acknowledgement from </xsl:text>
<xsl:value-of select="SellingCompanyName"/>
</xsl:template>
</xsl:stylesheet>
uj5u.com熱心網友回復:
作為已接受答案的補充: Allouche 的方法- 使用空 XSLT 元素 - 有助于控制空格,例如
<xsl:text/>New Job: <xsl:value-of select="OrderHeaderId"/>: <xsl:text/>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/459332.html
上一篇:如何向XML添加新行
下一篇:如何正確選擇XML中的節點?
