xslテンプレートを使用して、データを含む単純なxmlファイルを別のxmlファイル(Excelテンプレート)に正常に変換できました。xslファイルは次のようになります。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" standalone="yes"/>
<xsl:template match="/">
<xsl:processing-instruction name="mso-application">
<xsl:text>progid="Excel.Sheet"</xsl:text>
</xsl:processing-instruction>
...(stuff here)...
</xsl:template>
</xsl:stylesheet>
結果のxmlファイルは正しく書き出されますが、
<?xml version="1.0"?>
ファイルの先頭にあります。どうすれば上部に表示されますか?
現在、結果のxmlファイルは次のように始まります。
<?mso-application progid="Excel.Sheet"?>
...(rest of file)...
しかし、私がそれをする必要があるのは:
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
.(rest of file)...
次のコードを使用して、Windowsフォームを介してこの変換を実行しています。
XPathDocument myXPathDoc = new XPathDocument(xmlfile);
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load(xslfile);
XmlTextWriter myWriter = new XmlTextWriter(xmlexcelfile, null);
myWriter.Formatting = Formatting.Indented;
myWriter.Namespaces = true;
myXslTrans.Transform(myXPathDoc, null, myWriter);
myWriter.Close();
、、と一緒に遊んでみましxsl:output standalone="yes/no"
たomit-xml-declaration="no"
。myWriter.WriteStartDocument();
また、変換前に(C#で)コードを追加しようとしましたが、それは許可されませんでした。私もこれをオンラインで検索して戻ってきましたstandalone="yes"
が、うまくいきません。ここに欠けているものはありますか?ああ、あなたがなぜ私が持っている必要があるのか疑問に思っている場合に備えて
<?xml version="1.0"?>
結果のファイルの上部にあるのは、Excelでxmlファイルを開くと、Excelが正しく認識しないためですが、含まれている場合、Excelは正しく開きます...