반응형
XmlDocument를 문자열로 변환
다음은 현재 XMLDocument 를 String으로 변환하는 방법입니다.
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.Replace "\"를 할 수 있지만 그 방법은 괜찮습니까? 부작용이 있습니까? XML 자체에 "\" 가 포함되어 있으면 제대로 작동합니까 ?
따옴표가 없습니다. VS 디버거 일뿐입니다. 콘솔로 인쇄하거나 파일로 저장해보십시오. 참고로 항상 일회용 개체를 폐기하십시오.
using (var stringWriter = new StringWriter())
using (var xmlTextWriter = XmlWriter.Create(stringWriter))
{
xmlDoc.WriteTo(xmlTextWriter);
xmlTextWriter.Flush();
return stringWriter.GetStringBuilder().ToString();
}
xmlDoc이 XmlDocument 객체라고 가정하면 xmlDoc.OuterXml에 어떤 문제가 있습니까?
return xmlDoc.OuterXml;
OuterXml 속성 은 XML의 문자열 버전을 반환합니다.
당신이 사용하는 경우 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()
"
\"
디버거와 같이 표시 되지만 문자열에서 데이터가 정확하므로 아무것도 바꿀 필요가 없습니다. 문자열을 파일로 덤프하면 문자열이 올바른 것입니다.
참고 URL : https://stackoverflow.com/questions/2407302/convert-xmldocument-to-string
반응형
'IT story' 카테고리의 다른 글
OS X 10.9 이상에 libv8 gem 설치 (0) | 2020.05.07 |
---|---|
'AppCompatActivity'기호를 해결할 수 없습니다 (0) | 2020.05.07 |
왜 내 공이 사라지는가? (0) | 2020.05.07 |
ASP.NET ID를 사용할 때 테이블 이름을 어떻게 변경합니까? (0) | 2020.05.07 |
단순한 1L 대신 긴 serialVersionUID를 생성하는 이유는 무엇입니까? (0) | 2020.05.07 |