I'm trying to generate XML from another XML using a XslTransform. I get both files (source XML and XSL transformation file) as string content, so I'm trying to pass the XSL file to XslTransform.Load() method as XmlReader. Now the XmlReader has to be created form a source string containing XSL file, so i try doing it like this:
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);
and also tried using a StringReader:
XmlReader reader = XmlReader.Create(new StringReader(transformation.XsltContent));
Unfortunately, bot methods don't seems to work, the input seems to be ok, I even tried creating some basic one-element XML to pass, won't work either - reader contains {None}.
Could someone point out what seems to be the problem here?
Creates a new XmlReader instance by using the specified text reader, settings, and context information for parsing. Creates a new XmlReader instance using the specified stream, settings, and context information for parsing. Creates a new XmlReader instance using the specified stream, base URI, and settings.
Element when reader.Name == "product" => $"{reader.Name}\n", XmlNodeType. Element => $"{reader.Name}: ", XmlNodeType. Text => $"{reader. Value}\n", XmlNodeType.
XmlReader xmlReader = XmlReader.Create(new StringReader(YourStringValue));
The StringReader -> XmlReader approach is fine, you should stick to it. The reader reports none because it hasn't been read yet. Try calling Read() on it to see what happens then. The transformation will also call read on it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With