だから私は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ドキュメントまたはそのようなものとして保存することです.私にはわかりません...