Я использую это для форматирования XML-строки для печати дружественной XML-строки
public static string PrintXML(string xml)
{
string result = "";
MemoryStream mStream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(mStream, Encoding.Unicode);
XmlDocument document = new XmlDocument();
try
{
// Load the XmlDocument with the XML.
document.LoadXml(xml);
writer.Formatting = Formatting.Indented;
// Write the XML into a formatting XmlTextWriter
document.WriteContentTo(writer);
writer.Flush();
mStream.Flush();
// Have to rewind the MemoryStream in order to read
// its contents.
mStream.Position = 0;
// Read MemoryStream contents into a StreamReader.
StreamReader sReader = new StreamReader(mStream);
// Extract the text from the StreamReader.
string formattedXml = sReader.ReadToEnd();
result = formattedXml;
}
catch (XmlException)
{
// Handle the exception
}
mStream.Close();
writer.Close();
return result;
}
это работает действительно хорошо. Но у меня есть одна проблема, и я хотел бы выделить часть моего содержимого XML.
Проблема заключается в следующем: моя строка содержит такой заголовок: STP / 00/276 /
так:
string s = ("STP/00/276/<?xml version='1.0' encoding='iso-8859-1'?><RequestResponse><RequestName>GetInfo</RequestName></Params></RequestResponse>")
Как решить эту проблему?
С другой стороны, возможно ли изменить цвет содержимого?
ИтакЯ хотел бы иметь это:
<?xml version='1.0' encoding='iso-8859-1'?>
<RequestResponse>
<RequestName>GetInfo</RequestName>
</Params>
</RequestResponse>
И «GetInfo» должно быть написано красным цветом, например,