web-dev-qa-db-ja.com

文字列コンテンツからのXMLReader

XslTransformを使用して別のXMLからXMLを生成しようとしています。両方のファイル(ソースXMLおよびXSL変換ファイル)を文字列コンテンツとして取得するため、XSLファイルをXmlReaderとしてXslTransform.Load()メソッドに渡そうとしています。ここで、XmlReaderをXSLファイルを含むソース文字列から作成する必要があるため、次のようにしてみます。

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);

また、StringReaderを使用してみました:

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

残念ながら、ボットメソッドは機能しないようです。入力は問題ないようです。通過する基本的な1要素のXMLを作成しようとしても機能しません。リーダーには{None}が含まれています。

ここで問題と思われるものを誰かが指摘できますか?

47
matt99

StringReader-> XmlReaderアプローチは問題ありません。これに固執する必要があります。まだ読んでいないため、読者は何も報告しません。それでRead()を呼び出して、何が起こるか見てみてください。変換では、読み取りも呼び出されます。

30
fejesjoco

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

108
bhuang3