我需要制作能够生成json的XSLT。
问题是我的xml中有<
和>
个符号,需要用&lt;&gt;替换在输出中。但是disable-output-escaping =“yes”会换行,我可以删除这个换行符吗?
XML:
<item id="166" group="0">
<name>Some Titile</name>
<text><p>A dizzying array of deep, robust color, the Hugs and Kisses bouquet contains one dozen tulips and one dozen iris, fresh from the fields. It's an always-impressive bouquet perfect for a "dinner for two," a special someone's birthday, or anytime you want to make someone's heart race.</p></text>
</item>
我需要的输出
{
"name": "Some Title",
"text": "<p>A dizzying array of deep, robust color, the Hugs and Kisses bouquet contains one dozen tulips and one dozen iris, fresh from the fields. It's an always-impressive bouquet perfect for a "dinner for two," a special someone's birthday, or anytime you want to make someone's heart race.</p>;"
}
XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="item">
{
"name": "<xsl:value-of select="name" />",
"text": "<xsl:value-of select="text" />"
}
</xsl:template>
</xsl:stylesheet>
输出
{
"name": "Some Title",
"text": "<p>A dizzying array of deep, robust color, the Hugs and Kisses bouquet contains one dozen tulips and one dozen iris, fresh from the fields. It's an always-impressive bouquet perfect for a "dinner for two," a special someone's birthday, or anytime you want to make someone's heart race<./p>;"
}
答案 0 :(得分:0)
如果您想分别生成Javascript代码JSON代码,那么只需使用<xsl:output method="text"/>
,这样转换结果中的任何字符都不会被转义,当然也就不需要使用disable-output-escaping。
另一方面,我不明白为什么disable-output-escaping应该产生换行符,所以如果你仍然有问题,请考虑向我们展示XML输入,XSLT代码,你想要的结果和你想要的结果。你得到了,你使用的是哪个XSLT处理器。
答案 1 :(得分:0)
如果要生成JSON,请不要使用disable-output-escaping,请使用文本输出方法:
<xsl:output method="text"/>
使用文本输出方法,没有转义,因此无需禁用它。
我不知道这是否解决了换行问题,因为我不知道是什么导致了这个问题。