带有文本输出的XSLT空白控件



使用xsltproc,如果格式化程序需要通过插入空格来使用围绕CDATA的格式,我如何在没有环绕空格的情况下输出CDATA部分?无需使用xsl:text。我也尝试过xsl:value-of,但不知道如何在xsl:valueof中使用CDATA。(我可以删除CDATA周围的空格,但格式化程序只是将其添加回来(。

<?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" version="1.0" encoding="UTF-8" indent='no' />
<xsl:strip-space elements="*" />
<xsl:template match="/">
<xsl:text>
<![CDATA[/*
*    Licensed under the Apache License, Version 2.0 (the "License");
*/
]]>
</xsl:text>
<xsl:text>
<![CDATA[/*
*    Licensed under the Apache License, Version 2.0 (the "License");
*/
]]>
</xsl:text>
</xsl:template>
</xsl:stylesheet>

输出

jonsmirl@ares:~/aosp/blogs/jonsmirl.github.io/xml$ xsltproc test.xsl test.xsl
/*
*    Licensed under the Apache License, Version 2.0 (the "License");
*/

/*
*    Licensed under the Apache License, Version 2.0 (the "License");
*/
jonsmirl@ares:~/aosp/blogs/jonsmirl.github.io/xml$ 

所需输出

jonsmirl@ares:~/aosp/blogs/jonsmirl.github.io/xml$ xsltproc test.xsl test.xsl
/*
*    Licensed under the Apache License, Version 2.0 (the "License");
*/
/*
*    Licensed under the Apache License, Version 2.0 (the "License");
*/
jonsmirl@ares:~/aosp/blogs/jonsmirl.github.io/xml$ 

这个解决方案是有效的,我的错误是认为文本需要在CDATA中才能让格式化程序将其单独处理。

<?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" version="1.0" encoding="UTF-8" indent='no' />
<xsl:strip-space elements="*" />
<xsl:template match="/">
<xsl:text>/*
*    Licensed under the Apache License, Version 2.0 (the "License");
*/
</xsl:text>
<xsl:text>/*
*    Licensed under the Apache License, Version 2.0 (the "License");
*/
</xsl:text>
</xsl:template>
</xsl:stylesheet>

这个解决方案是有效的,我的错误是认为文本需要在CDATA中才能让格式化程序将其单独处理。

<?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" version="1.0" encoding="UTF-8" indent='no' />
<xsl:strip-space elements="*" />
<xsl:template match="/">
<xsl:text>/*
*    Licensed under the Apache License, Version 2.0 (the "License");
*/
</xsl:text>
<xsl:text>/*
*    Licensed under the Apache License, Version 2.0 (the "License");
*/
</xsl:text>
</xsl:template>
</xsl:stylesheet>

相关内容

  • 没有找到相关文章

最新更新