IT Share you

XDocument에서 XML을 문자열로 얻는 방법은 무엇입니까?

shareyou 2020. 11. 24. 20:36
반응형

XDocument에서 XML을 문자열로 얻는 방법은 무엇입니까?


LINQ to XML을 처음 사용합니다. 당신이 만든 후에, 당신은 당신이했던 것처럼 그것을 XDocument어떻게 얻을 수 있습니까?OuterXmlXmlDocument


객체의 재정의 된 ToString () 메서드 만 사용하면됩니다.

XDocument xmlDoc ...
string xml = xmlDoc.ToString();

이것은 XElement 등과 같은 모든 XObject에서 작동합니다.


언제 바뀌 었는지는 모르겠지만 오늘 (2017 년 7 월) 답변을 시도해 보면

"System.Xml.XmlDocument"

대신 xml 문서를 스트림에 쓰는 ToString()원래 의도 된 방식으로 XmlDocument콘텐츠에 액세스 할 수 있습니다 .

XmlDocument xml = ...;
string result;

using (StringWriter writer = new StringWriter())
{
  xml.Save(writer);
  result = writer.ToString();
}

ToString ()을 사용하여 XDocument를 문자열로 변환합니다.

string result = string.Empty;
XElement root = new XElement("xml",
    new XElement("MsgType", "<![CDATA[" + "text" + "]]>"),
    new XElement("Content", "<![CDATA[" + "Hi, this is Wilson Wu Testing for you! You can ask any question but no answer can be replied...." + "]]>"),
    new XElement("FuncFlag", 0)
);
result = root.ToString();

XDocument.ToString ()을 수행하면 전체 XML을 얻지 못할 수 있습니다.

XML 문서의 시작 부분에서 XML 선언을 문자열로 가져 오려면 XDocument.Save () 메서드를 사용합니다.

    var ms = new MemoryStream();
    using (var xw = XmlWriter.Create(new StreamWriter(ms, Encoding.GetEncoding("ISO-8859-1"))))
        new XDocument(new XElement("Root", new XElement("Leaf", "data"))).Save(xw);
    var myXml = Encoding.GetEncoding("ISO-8859-1").GetString(ms.ToArray());

참고 URL : https://stackoverflow.com/questions/4533609/how-to-get-xml-as-string-from-xdocument

반응형