codememo

Xml 문서를 문자열로 변환

tipmemo 2023. 8. 6. 10:08
반응형

Xml 문서를 문자열로 변환

현재 XML 문서문자열로 변환하는 방법은 다음과 같습니다.

StringWriter stringWriter = new StringWriter();
XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter);

xmlDoc.WriteTo(xmlTextWriter);

return stringWriter.ToString();

이 방법의 문제는 "(내가 속성에 가지고 있는) "(인용)가 있으면 그것들이 빠져나간다는 것입니다.

예:

<Campaign name="ABC">
</Campaign>

위는 예상 XML입니다. 그러나 반환됩니다.

<Campaign name=\"ABC\">
</Campaign>

String 할 수 있어요."\"를 대체하지만 그 방법은 괜찮은가요?부작용이 있습니까?XML 자체에 "\"가 포함되어 있으면 정상적으로 작동합니까?

xmlDoc이 XmlDoc 개체라고 가정하면 xmlDoc에 무슨 문제가 있습니까?OuterXml?

return xmlDoc.OuterXml;

OuterXml 속성은 xml의 문자열 버전을 반환합니다.

인용문이 없습니다.그냥 VS 디버거야.콘솔에 인쇄하거나 파일에 저장해 보십시오.참고로 항상 일회용 물체를 폐기합니다.

using (var stringWriter = new StringWriter())
using (var xmlTextWriter = XmlWriter.Create(stringWriter))
{
    xmlDoc.WriteTo(xmlTextWriter);
    xmlTextWriter.Flush();
    return stringWriter.GetStringBuilder().ToString();
}

사용 중인 경우Windows.Data.Xml.Dom.XmlDocument의 버전XmlDocument(예: UWP 앱에서 사용), 다음을 사용할 수 있습니다.yourXmlDocument.GetXml()XML을 문자열로 가져옵니다.

확장 방법으로:

public static class Extensions
{
    public static string AsString(this XmlDocument xmlDoc)
    {
        using (StringWriter sw = new StringWriter())
        {
            using (XmlTextWriter tx = new XmlTextWriter(sw))
            {
                xmlDoc.WriteTo(tx);
                string strXmlText = sw.ToString();
                return strXmlText;
            }
        }
    }
}

이제 간단하게 사용할 수 있습니다.

yourXmlDoc.AsString()

사용할 수 있습니다.xmlDoc.InnerXml문자열에서 xml을 가져오는 속성

"로 표시됩니다.\"디버거에서는 데이터가 문자열에 정확하므로 아무것도 바꿀 필요가 없습니다.파일에 문자열을 덤프하려고 하면 문자열이 정확하다는 것을 알 수 있습니다.

언급URL : https://stackoverflow.com/questions/2407302/convert-xmldocument-to-string

반응형