我有一個Sharepoint列表,我想通過XSL數據視圖轉換爲JSON。用<br />替換新的行字符XSL
我有一個XSL遞歸替換函數,我用它來替換所有特殊字符(轉義反斜槓,雙引號到&「等),這給了我很好的乾淨的JSON在用戶瀏覽器中正確解析。
我需要逃避/替換的最後一件事是新行字符。新行會在某些瀏覽器中解析JSON時導致錯誤。
下面是一些XSL在此進行測試,如果標題的內容有一個新行字符,如果是這樣,我們輸出的一段:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="catalog/cd">
<xsl:if test='contains(title,"
")'>
<p>Found <xsl:value-of select="title" /></p>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
下面是一些示例XML:
<catalog>
<cd>
<title>Empire
Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
</catalog>
「 Empire Burlesque「應該是唯一通過測試的項目,但是所有三個標題都通過if語句並被輸出。
編輯
修改下面的解決方案,我想如果我想要做搜索和個別節點的基礎上更換這應該工作?直到明天我才能在Sharepoint上測試它。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="catalog/cd">
<xsl:variable name="title_clean">
<xsl:call-template name="repNL">
<xsl:with-param name="pText" select="title"/>
</xsl:call-template>
</xsl:variable>
<p><xsl:value-of select='$title_clean' /></p>
</xsl:for-each>
</xsl:template>
<xsl:template name="repNL">
<xsl:param name="pText" select="."/>
<xsl:copy-of select="substring-before(concat($pText,'
'),'
')"/>
<xsl:if test="contains($pText, '
')">
<br />
<xsl:call-template name="repNL">
<xsl:with-param name="pText" select=
"substring-after($pText, '
')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
似乎是一個重複:http://stackoverflow.com/questions/3309746 – mzjn 2011-05-15 16:32:27
無法用提供的輸入重現。對於示例XML和示例XSLT,它僅匹配「Empire Burlesque」標題。我沒有在輸出中獲得所有三個標題。您確定示例XML與您的實際數據相匹配嗎? – 2011-05-15 17:05:39
好問題,+1。查看我的答案,獲取完整,簡短的解決方案和詳細解釋。 – 2011-05-15 17:46:14