質問

.NETでXML文字列を取得し、それを読むためにeasyerようにする方法はありますか? 私は何を意味することは、私がこれを変換することができますされます:

<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を作成し、それをあなたがtrueにインデントプロパティを設定し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 /ライブラリ/ system.xml.xmlwritersettings.aspxする

あなたが定義することができますインデントとIndentChars

すべての

まず、あなたは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

そして、あなたは、この関数を呼び出すsimpylことができます:

Dim myXML As String = "<element1><element2>some data</element2></element1>"
Dim myPrettyXML As String
myPrettyXML = PrettyXML(myPrettyXML)

[C#の

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