-
09-09-2019 - |
質問
.NETでXML文字列を取得し、それを読むためにeasyerようにする方法はありますか? 私は何を意味することは、私がこれを変換することができますされます:
<element1><element2>some data</element2></element1>
これに:
<element1>
<element2>
some data
</element2>
</element1>
すべてのは、このために、クラスに組み込まれていますか? SQL Server 2005は、スペースまたはいくつかのことを節約するために、XMLのすべての書式設定を削除しているようだと...
解決
、あなたは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#バージョンを試していないが、それは動作するはずです。
この情報がお役に立てば幸い..