gpt4 book ai didi

.net - XSLT:禁用整个文档中的输出转义

转载 作者:行者123 更新时间:2023-12-04 15:37:44 25 4
gpt4 key购买 nike

我正在尝试使用 xslt 生成一些 C# 代码 - 在我使用泛型并需要输出一些像这样的文本之前,它工作得很好:

MyClass<Type>

在这种情况下,我发现发出它的唯一方法是执行以下操作:
MyClass<xsl:text disable-output-escaping="yes">&lt;</xsl:text>Type<xsl:text disable-output-escaping="yes">&gt;</xsl:text>

在哪里:
  • 通常这一切都需要在一行上进行,否则您最终会在生成的代码中出现换行符
  • 在上面的例子中,我在技术上本可以只使用 1 <xsl:text /> ,但通常是类型 Type由其他模板给出,例如:
  • <xsl:value-of select="@type" />
    我不介意写 &lt;很多,但我想避免写 <xsl:text disable-output-escaping="yes">&lt;</xsl:text>只为一个字符!

    有什么办法做 disable-output-escaping="yes"对于整个文档?

    最佳答案

    这不起作用的原因完全在于我正在应用转换 - 我使用 XslCompiledTransform 和 XmlWriter 来转换我的 xml,但是根据 Microsoft XML Teams blog一旦我使用 XmlWriter 写入我的输出,标签就会被忽略!

    我通过将 XmlWriters 输出设置显式设置为 Xsl 转换的设置来解决此问题:

    XmlWriterSettings ws = xslt.OutputSettings.Clone();
    ws.CheckCharacters = false;

    xslt.Transform("MyDocument.xml", XmlWriter.Create(Console.Out, ws));

    一旦我这样做了,转换就会尊重我的标签,一切都很好!

    关于.net - XSLT:禁用整个文档中的输出转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788429/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com