0
문자열에 백 슬래시 이스케이프 문자가 포함되어 있다는 것을 제외하고는 XML 부분과 유사한 문자열 sMediaXML
이 있습니다. 이 문자열을 XmlDocument
에로드 할 수 없으므로 요소가 있는지 등을 확인하고 확인할 수 있습니다 ... 나중에 다른 코드가 나중에 사용되기 때문에 아래에서 보는 것처럼 문자열 형식을 정확하게 유지해야합니다.이스케이프 문자가있는 XML 문자열로드
// sMediaXML = "<media><cd><burned value=\"true\" /></cd><vinyl><pressed value=\"true\" /></vinyl></media>"
using System;
using System.IO;
using System.Text;
using System.Xml;
namespace xmlWriter_Console
{
class Program
{
static void Main(string[] args)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.CloseOutput = false;
MemoryStream strm = new MemoryStream();
using (XmlWriter writer = XmlWriter.Create(strm, settings))
{
writer.WriteStartElement("media");
writer.WriteStartElement("cd");
writer.WriteStartElement("burned");
writer.WriteAttributeString("value", "true");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteStartElement("vinyl");
writer.WriteStartElement("pressed");
writer.WriteAttributeString("value", "true");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
}
string sMediaXML = Encoding.UTF8.GetString((strm).ToArray());
Boolean bNodeExists;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(sMediaXML);
if (xmlDoc.SelectSingleNode("/media/digital/@value").Value != null)
{
bNodeExists = true;
}
else
{
bNodeExists = false;
}
}
}
}
"이 문자열을 XmlDocument에로드 할 수 없어 요소를 확인하고 확인할 수 있습니다."- 이유가 무엇입니까? 무슨 일이야? 실제 문제는 무엇입니까? –