首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xmltextwriter转换特殊字符

xmltextwriter转换特殊字符
EN

Stack Overflow用户
提问于 2011-11-18 22:38:01
回答 3查看 1.4K关注 0票数 1

我在xslt文件转换的结果中得到了特殊字符的转换。

以前有没有人经历过这种情况?

在源文档中,有一个字符&,在结果中显示为&。我需要的原始&字符,即使在结果。

代码语言:javascript
复制
XmlDataDocument dd = new XmlDataDocument(ds);

XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true;
settings.EnableScript = true;

XslCompiledTransform transform = new XslCompiledTransform();

transform.Load(XmlReader.Create(new StringReader(transformSource.Transform)), settings, new XmlUrlResolver());

XsltArgumentList a = new XsltArgumentList();

a.AddExtensionObject("http://www.4plusmedia.tv", new TransformationHelper());

using (XmlTextWriter writer = new XmlTextWriter(path, System.Text.Encoding.UTF8))
{
    writer.Formatting = Formatting.Indented;
    transform.Transform(dd, a, writer);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-19 01:09:43

如果希望XslCompiledTransform将纯文本文件作为XSLT转换的结果输出,则不应转换为您创建的XmlTextWriter,而应转换为FileStreamTextWriter

票数 1
EN

Stack Overflow用户

发布于 2011-11-18 23:27:28

您的输出部分是using (XmlTextWriter writer = ...) { ... }

这表明您的输出 XML。您可以使用XSLT来生成纯文本,这将是不同的。

对于可扩展标记语言和超文本标记语言输出,&编码是必需的。

在某些阶段,将使用Xml元素的值,这是&再次成为&的地方(以及何时)。

票数 1
EN

Stack Overflow用户

发布于 2011-11-18 23:30:50

在源文档中有一个字符&在结果中显示为&

不要惊慌,因为没有问题:这与任何格式良好的文档中应该出现的字符&完全相同。

您可以看到这是完全相同的字符,获取节点的字符串值并输出它--您将看到只有&是输出的。

确定这只是文本字符的另一种方法是在XSLT中,当输出方法设置为“&”时输出它。下面是一个完整的小示例:

XML文档

代码语言:javascript
复制
<t>M &amp; M</t>

Transformation

代码语言:javascript
复制
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>

 <xsl:template match="/*">
  <xsl:value-of select="."/>
 </xsl:template>
</xsl:stylesheet>

结果

代码语言:javascript
复制
M & M
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8184111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档