문제

.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# 버전을 시도하지는 않았지만 작동해야합니다.

도움이 되었기를 바랍니다..

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top