web-dev-qa-db-fra.com

XMLReader à partir d'un contenu de chaîne

J'essaie de générer du XML à partir d'un autre XML à l'aide d'un XslTransform. J'obtiens les deux fichiers (fichier source de transformation XML et XSL) en tant que contenu de chaîne, donc j'essaie de passer le fichier XSL à la méthode XslTransform.Load () en tant que XmlReader. Maintenant, le XmlReader doit être créé à partir d'une chaîne source contenant un fichier XSL, donc j'essaie de le faire comme ceci:

MemoryStream memStream = new MemoryStream();
byte[] data = Encoding.Default.GetBytes(transformation.XsltContent);
memStream.Write(data, 0, data.Length);
memStream.Position = 0;
XmlReader reader = XmlReader.Create(memStream);

et a également essayé d'utiliser un StringReader:

XmlReader reader = XmlReader.Create(new StringReader(transformation.XsltContent));

Malheureusement, les méthodes du bot ne semblent pas fonctionner, l'entrée semble être correcte, j'ai même essayé de créer du XML à un élément à passer, ne fonctionnera pas non plus - le lecteur contient {Aucun}.

Quelqu'un pourrait-il indiquer ce qui semble être le problème ici?

47
matt99

L'approche StringReader -> XmlReader est très bien, vous devez vous y tenir. Le lecteur n'en rapporte aucun car il n'a pas encore été lu. Essayez d'appeler Read () dessus pour voir ce qui se passe ensuite. La transformation appellera également lecture dessus.

30
fejesjoco

XmlReader xmlReader = XmlReader.Create(new StringReader(YourStringValue));

108
bhuang3