0

だから私はXSLTコードを持っています(それは正しいです、それは個別にテストされています)そしてそれを文字列としてハードコーディングしました(それは要件です、気にしないでください)。XML、XSLT、およびこれらすべてのものをロードしても問題ありません。

しかし、XmlDocument を第 1 引数として使用するXmlCompiledTransform.Transform()と、例外が発生しWhite space handlingます。

次に、XmlReader を最初の引数として使用します。これは機能しますが、変換されたファイルを保存しようとすると例外が発生し、例外は次のとおりです。Invalid XML document. The document does not have a root element.

コードは次のとおりです。

    Dim xsltTransformerCode As New xsltTransformCode()
    Dim myXmlDoc As New XmlDocument()
    Dim resultXmlDoc As New XmlDocument()
    Dim sr As New StringReader(xsltTransformerCode.transformationXSLTcode())
    Dim xr As XmlReader = XmlReader.Create(sr)
    Dim xsltTransCompiled As New XslCompiledTransform()

    'write the stringified xslt code to file, in order to check its validity manually'
    File.WriteAllText("C:\Users\gk\Desktop\tempXSLTcode.xsl", xsltTransformerCode.transformationXSLTcode())
    'load the xml string taken from the database'
    myXmlDoc.Load("C:\Users\gk\Desktop\XTilbud.xml")
    'load the stylesheet'
    xsltTransCompiled.Load(xr)

    Using xw As XmlWriter = resultXmlDoc.CreateNavigator().AppendChild()
        xsltTransCompiled.Transform(myXmlDoc, Nothing, xw)
        xw.Close()
    End Using

    resultXmlDoc.Save("C:\Users\gk\Desktop\myXMLfile.xml")

    sr.Dispose()
    sr.Close()
    xr.Close()

PS 元のドキュメントを変換し、その値を別の xmlDocument に渡して保存したいと考えています。(または、同じオブジェクトを変換して保存できれば問題ありません。提案をお待ちしています)。

だから私が必要としているのは、どういうわけかリーダーの値を取得し、それをXMLドキュメントまたはそのようなものとして保存することです.私にはわかりません...

4

1 に答える 1