XML을 더 읽기 쉽게 만드십시오
-
09-09-2019 - |
문제
.NET에서 XML 문자열을 가져 와서 읽기 쉽게 만드는 방법이 있습니까? 내 말은 이것을 변환 할 수 있다는 것입니다.
<element1><element2>some data</element2></element1>
이에:
<element1>
<element2>
some data
</element2>
</element1>
이것을위한 수업이 내장되어 있습니까? SQL Server 2005는 XML의 모든 형식을 제거하여 공간이나 물건을 절약하는 것처럼 보입니다.
해결책
.NET 3.5를 사용하는 경우로드 할 수 있습니다. XDocument
그런 다음 ToString ()을 호출하여 적절하게 들여 보내십시오. 예를 들어:
using System;
using System.Xml.Linq;
public class Test
{
static void Main()
{
string xml = "<element1><element2>some data</element2></element1>";
XDocument doc = XDocument.Parse(xml);
xml = doc.ToString();
Console.WriteLine(xml);
}
}
결과:
<element1>
<element2>some data</element2>
</element1>
파일이나 다른 스트림에 글을 쓰면 XDocument.Save
(기본적으로)도 들여다.
(나는 믿는다 XElement
실제로 필요하지 않은 경우 동일한 기능이 모두 있습니다. XDocument
.)
다른 팁
XML을 파일로 어떻게 저장 / 작성합니까?
xmlwriter를 생성하고 xmlwritersettings 인스턴스를 전달할 수 있습니다.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
XmlWriter writer = XmlWriter.Create (outputStream, settings);
문자열을 XDocument 객체에로드하여 문자열에 다시 저장할 수 있습니다.
XDocument doc = XDocument.Load(new StringReader(xmlString));
StringWriter writer = new StringWriter();
doc.Save(writer);
string readable = writer.ToString();
그것은 당신에게 다음과 같은 방식으로 형식화 된 XML을 줄 것입니다.
<?xml version="1.0" encoding="utf-16"?>
<element1>
<element2>some data</element2>
</element1>
살펴보십시오
XmlWriterSettings
http://msdn.microsoft.com/en-us/library/system.xml.xmlwritersettings.aspx
들여 쓰기와 들여 쓰기를 정의 할 수 있습니다
우선, C# 및 vb.net에 태그가 지정되었습니다. 그래서 내 대답은 둘 다를위한 것입니다.
XML 문자열을 문자열 유형의 매개 변수로 가져 오는 함수를 정의 할 수 있습니다.
의 말을하자;
다음과 같은 기능을 만들었습니다.
VB
Private Function PrettyXML(XMLString As String) As String
Dim sw As New StringWriter()
Dim xw As New XMLWriter(sw)
xw.Formatiing = Formatting.Indented
xw.Indentation = 4
Dim doc As New XMLDocument
doc.LoadXML(XMLString)
doc.Save(xw)
Return sw.ToString()
End Function
그런 다음이 기능을 다음과 같이 호출 할 수 있습니다.
Dim myXML As String = "<element1><element2>some data</element2></element1>"
Dim myPrettyXML As String
myPrettyXML = PrettyXML(myPrettyXML)
씨#
Private String PrettyXML(string XMLString)
{
StringWriter sw = new StringWriter();
XMLTextWriter xw = new XmlTextWriter(sw);
xw.Formatiing = Formatting.Indented;
xw.Indentation = 4;
XmlDocument doc = new XmlDocument();
doc.Save(xm);
return sw.ToString();
}
그런 다음이 기능을 다음과 같이 호출 할 수 있습니다.
string myXML = "<element1><element2>some data</element2></element1>";
string myPrettyXML = "";
myPrettyXML = PrettyXML(myPrettyXML);
참고 : C# 버전을 시도하지는 않았지만 작동해야합니다.
도움이 되었기를 바랍니다..