删除用@创建的字符串中的额外空白
本文关键字:空白 字符串 创建 删除 | 更新日期: 2023-09-27 18:04:50
我正在创建一个转换字符串,如下所示:
string transform = @"
<?xml version='1.0' encoding='utf-8'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns:msxsl='urn:schemas-microsoft-com:xslt' exclude-result-prefixes='msxsl'>
<xsl:template match='*'>
<xsl:copy>
<xsl:for-each select='@*|*[not(* or @*)]'>
<xsl:attribute name='{name(.)}'><xsl:value-of select='.'/>
</xsl:attribute>
</xsl:for-each>
<xsl:apply-templates select='*[* or @*]|text()'/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
";
当我加载它时,我得到这个错误:{"意外的XML声明。XML声明必须是文档中的第一个节点,并且不允许在其前面出现空白字符。2号线,21号位置。"}据我所知,它抱怨新行前面有空白。那么,这里的想法是什么?我应该去掉多余的空白吗?如果我将该字符串复制到xslt处理器中,它会正常工作。
它在抱怨@"
和第一个<
之间的字符串部分。转换中的所有其他空格将被忽略。
一个便宜的方法来修复它将@"
移动到下一行:
string transform =
@"<?xml version='1.0' encoding='utf-8'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns:msxsl='urn:schemas-microsoft-com:xslt' exclude-result-prefixes='msxsl'>
...
</xsl:stylesheet>
";
或者您可以在逐字字符串上调用Trim()
:
string transform = @"
<?xml version='1.0' encoding='utf-8'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns:msxsl='urn:schemas-microsoft-com:xslt' exclude-result-prefixes='msxsl'>
...
</xsl:stylesheet>
".Trim();
,但你将不再能够使transform
const string
。