c# - 使用 C# 执行忽略 xsl :output 的 xslt 转换

标签 c# xml xslt

我正在我的 C# 程序中进行 xslt 转换。当我自己运行 xslt 时,它输出得很好,但是当我从我的 c# 程序中运行它时,它总是会遗漏:

<?xml version="1.0" encoding="UTF-8"?>

在生成的 xml 文档的顶部。我的 XSLT 文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:hd="http://www.hotdocs.com/schemas/component_library/2009"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:xml="http://www.w3.org/XML/1998/namespace">

  <xsl:output method="xml" omit-xml-declaration="no" version="1.0" encoding="UTF-8"/>

  <xsl:template match="/xsd:schema">
     <hd:componentLibrary xmlns:hd="something" version="10">
     </hd:componentLibrary>
  </xsl:template>
  <xsl:template match="text()" />
</xsl:stylesheet>

我在我的 C# 程序中运行 xslt 是这样的:

XPathDocument myXPathDoc = new XPathDocument(PathToXMLDocument);
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load(PathToXSLTDocument);
XmlTextWriter myWriter = new XmlTextWriter(PathToOutputLocation, null);
myXslTrans.Transform(myXPathDoc,null,myWriter);
myWriter.Close();

我试过没有 xsl:output 行的 xslt 文档,但这似乎没有帮助。

如何在输出的 xml 文件顶部获取 ?xml 标记?

谢谢

最佳答案

XmlTextWriter 有点过时了。我建议你切换到 XmlWriter.Create .

然后你可以指定OmitXmlDeclaration = 在 XmlWriterSettings 中为假.

关于c# - 使用 C# 执行忽略 xsl :output 的 xslt 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3833113/

相关文章:

c# - HttpContext.Current.Features.Get<IRequestCultureFeature>() 在 asp.net Core 中为 null

c# - EntityFramework.Extended Future 错误(JIT 编译器内部限制)

c# - 如何去授权方法ASP.NET

android - 固定页脚不显示最底部的列表项

java - 使用 DOM 将 XML 解析为 HashMap

c# - 为什么这没有得到括号之间的东西?

xml - 解析 XML 是什么意思?

java - 使用已编译的 XSL 转换

xml - 使用 XSLT 检查 XML 节点名称是否包含字母

html - 谷歌浏览器和其他 : saving xml+xsl as html