我正在我的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:输出行的xslt文档,但这似乎没什么帮助。
如何在输出的xml文件的顶部获取?xml标签?
由于
答案 0 :(得分:1)
XmlTextWriter有点过时了。我建议您切换到XmlWriter.Create。
然后,您可以在OmitXmlDeclaration中指定XmlWriterSettings = false。
答案 1 :(得分:0)
如果您使用XmlWriter.Create(),则可以将XmlWriterSettings实例作为参数传递。设置类中的OmitXmlDeclaration成员控制是否包含该标记。