Avatar billede mungojerrie Nybegynder
27. november 2007 - 20:44 Der er 4 kommentarer og
1 løsning

Kald til XmlTextWriter fejler

Jeg har følgende kode, som transformerer en xml fil til en tekst fil udfra en xsl fil.
Problemet er jeg får en fejl fra kaldet til XmlTextWriter (se efter koden)

public static void Validate(string pathToXMLFile, string pathToTransFormFile, string pathToOutputFile)

        {

            try

            {

                XmlDocument doc = new XmlDocument();



                XmlTextReader reader = new XmlTextReader(pathToXMLFile);

                doc.Load(reader);

                //doc.LoadXml(pathToXMLFile);

                XmlElement root = doc.DocumentElement;

                XPathNavigator nav = root.CreateNavigator();



                // Transform the file.

                XslCompiledTransform xslt = new XslCompiledTransform();

                xslt.Load(new XPathDocument(pathToTransFormFile));



                XmlTextWriter writer = new XmlTextWriter(pathToOutputFile, System.Text.Encoding.UTF8);

                writer.Formatting = Formatting.Indented;

                writer.WriteStartDocument(); //make sure the document has a xml declaration



                // Save the file

                xslt.Transform(nav, writer);


                writer.Close();





            }

            catch (Exception error)

            {

                Console.Write("Der skete en fejl" + error.ToString());

            }

}

Fejlen:

System.InvalidOperationException: Token Content i tilstanden Prolog ville resultere i et ugyldigt XML-dokument.

  ved System.Xml.XmlTextWriter.AutoComplete(Token token)

  ved System.Xml.XmlTextWriter.WriteString(String text)

  ved System.Xml.Xsl.Runtime.XmlRawWriterWrapper.WriteString(String text)

  ved System.Xml.Xsl.Runtime.XmlQueryOutput.WriteString(String text, Boolean disableOutputEscaping)

  ved System.Xml.Xsl.Runtime.XmlQueryOutput.WriteString(String text)

  ved <xsl:apply-templates>(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime, XPathNavigator )

  ved <xsl:apply-templates>(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime, XPathNavigator )

  ved <xsl:apply-templates>(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime, XPathNavigator )

  ved <xsl:apply-templates>(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime, XPathNavigator )

  ved Root(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)

  ved Execute(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)

  ved System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlSequenceWriter results)

  ved System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer, Boolean closeWriter)

  ved System.Xml.Xsl.XmlILCommand.Execute(IXPathNavigable contextDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter results)

  ved System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XmlWriter results)

  ved XMLTransform2.XMLValidator.Validate(String pathToXMLFile, String pathToTransFormFile, String pathToOutputFile) i C:\Documents and Settings\Jan\Dokumenter\Visual Studio 2005\Projects\XMLTransform2\XMLTransform2\XMLTransform.cs:linje 35

Nogen der har en løsning?
Avatar billede arne_v Ekspert
27. november 2007 - 21:00 #1
Jeg tror ikke at du kan mixe at du selv skriver XML og at lade XSLT skrive paa den maade.

XSLT vil forsoege at skrive et komplet dokument.

Men kan du ikke lave din XSL saa der altid kommer en deklaration ?
Avatar billede mungojerrie Nybegynder
27. november 2007 - 21:15 #2
jeg har haft ovenståede kode til at virke, sådan næsten, det eneste der er ændret her er:
XslCompiledTransform, som før bare var XslTransform
Avatar billede mungojerrie Nybegynder
10. december 2007 - 18:05 #3
ingen forslag ellers?
Avatar billede arne_v Ekspert
23. december 2007 - 06:05 #4
no
Avatar billede mungojerrie Nybegynder
12. februar 2008 - 10:59 #5
fandt selv en løsning :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester