如何使用XDocument打印<?xml version =“1.0”?>
使用ToString方法时,有没有办法让XDocument打印xml版本? 有它输出这样的东西:
<?xml version="1.0"?> <!DOCTYPE ELMResponse [ ]> <Response> <Error> ...
我有以下几点:
var xdoc = new XDocument(new XDocumentType("Response", null, null, "\n"), ...
这将打印这很好,但它缺less上面所述的“<?xml版本”。
<!DOCTYPE ELMResponse [ ]> <Response> <Error> ...
我知道你可以通过手动输出我自己做到这一点。 只是想知道是否可以通过使用XDocument。
通过使用XDeclaration。 这将添加声明。
但是用ToString你不会得到所需的输出。
你需要用他的一个方法来使用XDocument.Save()。
全样本:
var doc = new XDocument( new XDeclaration("1.0", "utf-16", "yes"), new XElement("blah", "blih")); var wr = new StringWriter(); doc.Save(wr); Console.Write(wr.ToString());
这是迄今为止最好的方式和最可pipe理的方式:
var xdoc = new XDocument(new XElement("Root", new XElement("Child", "台北 Táiběi."))); string mystring; using(var sw = new MemoryStream()) { using(var strw = new StreamWriter(sw, System.Text.UTF8Encoding.UTF8)) { xdoc.Save(strw); mystring = System.Text.UTF8Encoding.UTF8.GetString(sw.ToArray()); } }
我只是因为你可以通过改变.UTF8到.Unicode或.UTF32来改变编码
只要input这个
var doc = new XDocument ( new XDeclaration ("1.0", "utf-16", "no"), new XElement ("blah", "blih") );
你得到
<?xml version="1.0" encoding="utf-16" standalone="no"?> <blah>blih</blah>
VB.NET解决scheme代码
码
Dim _root As XElement = <root></root> Dim _element1 As XElement = <element1>i am element one</element1> Dim _element2 As XElement = <element2>i am element one</element2> _root.Add(_element1) _root.Add(_element2) Dim _document As New XDocument(New XDeclaration("1.0", "UTF-8", "yes"), _root) _document.Save("c:\xmlfolder\root.xml")
输出注意事项(请在记事本中打开输出)
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <root> <element1>i am element one</element1> <element2>i am element one</element2> </root>