1

我有一个有效的 xml 流,并希望以一种易于阅读的方式编写此流来调试输出。

目前我得到这样的东西:

<bla><yadda>hello</yadda><yadda>world</yadda></bla>

但我想要的是这样的:

<bla>
    <yadda>hello</yadda>
    <yadda>world</yadda>
</bla>

是否有捷径可寻?

到目前为止,这是我的代码:

stream.Position = 0;
byte[] bbb = stream.GetBuffer();
string str = "";
for(int i = 0; i < stream.Length; i++)
{
  byte b = bbb[i];
  str += Convert.ToChar(b).ToString();
}
Debug.WriteLine(str);
4

5 回答 5

2

这应该工作

string xml = "<bla><yadda>hello</yadda><yadda>world</yadda></bla>";
XDocument doc = XDocument.Parse(xml);
Console.WriteLine(doc.ToString());

输出

<bla>
   <yadda>hello</yadda>
   <yadda>world</yadda>
</bla> 
于 2013-08-27T07:07:33.483 回答
1

另一种方法是使用 System.Xml.Linq.XElement:

var xel = System.Xml.Linq.XElement.Parse("<bla><yadda>hello</yadda><yadda>world</yadda></bla>");
Console.WriteLine(xel);
于 2013-08-27T07:13:10.063 回答
1

这也有效:

StreamReader strm = new StreamReader(@"D:\\maoh.xml");

while (strm.EndOfStream == false)
{
     Console.WriteLine(strm.ReadLine());
}

并给出:

在此处输入图像描述

于 2013-08-27T07:13:50.240 回答
1

使用XDocument和加载蒸汽

XDocument doc= XDocument.Load(stream);

Debug.WriteLine(doc.ToString());
于 2013-08-27T07:09:27.050 回答
0

您可以为此使用 Tidy.Net 库。它允许您:

  • 休息前

    缩进

    缩进属性

    缩进空格

    标记

    标点换行

    排序属性

    分裂

    标签大小

    垂直空间

    换行

    包装属性

    包装 jste

    包装-php

    换行脚本文字

    包裹部分

http://tidy.sourceforge.net/docs/quickref.html

于 2013-08-27T07:08:48.267 回答