WebRequest req = HttpWebRequest.Create("http://example.com/example");
WebResponse res = req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string str = sr.ReadToEnd();
XmlDocument doc = new XmlDocument();
doc.LoadXml(str);
XmlTextWriter writer = new XmlTextWriter("D://myGameSite//myGames.xml", null);
writer.Formatting = Formatting.Indented;
doc.Save(writer);**strong text**
Response.Write(doc);
现在这段代码工作正常我的意思是它将XML文件保存在myGameSite的根目录中,文件名为myGames,但是当我尝试在浏览器中显示这个XML文件时,你可以在代码中看到,它只是明白地显示这个
System.Xml.XmlDocument
我想在我的浏览器中显示这个XML文件以及标签,我的asp.net和.netframework的版本是2.0所以请不要使用LINQ :(
答案 0 :(得分:5)
这样做;)
Response.Write("<pre><code>" + Server.HtmlEncode(doc.InnerXml) + "</code></pre>");
修改强>
或者您可以在textarea中显示xml
<asp:TextBox ID="txtXml" runat="server" TextMode="MultiLine" Height="500px" Width="600px" />
背后的代码
// This will preserve indentation
txtXml.Text = doc.InnerXml;
答案 1 :(得分:1)
由于您有可用的xml,str
,只需写下:
Response.Write(str);
请注意,这不包括任何格式更改 - 如果您需要,您需要再次写 xml(到输出),或者加载刚才写的文件。您还需要将响应类型更改为“text / xml”。不相关,但请注意您还应该关闭作者,最好是using
:
var settings = new XmlWriterSettings();
settings.Indent = true;
using(var writer = XmlWriter.Create(path, settings)) {
doc.Save(writer);
}
您也可以重复Save
:
using(var writer = XmlWriter.Create(Response.Output, settings)) {
doc.Save(writer);
}
答案 2 :(得分:1)
google“pretty print xml c#”;例如http://www.expertcore.org/viewtopic.php?t=1101
你会找到工作代码,我敢肯定。这是一个例子:Format XML String to Print Friendly XML String
将doc.OuterXml
传递给您找到的该函数;它会吐出缩进的xml
将此xml设置为readonly more或某个标签中的某个多行文本框;除非它是textbox / textarea,否则你必须对其进行html编码(例如标签):
this.someLabel.Text = this.Server.HtmlEncode(prettyPrintedXml)
答案 3 :(得分:1)
对于那些使用C#作为后端和角度作为前端mcv框架的人,以下代码将起作用(一种变通方法)。
[BACK-END]
using Newtonsoft.Json;
using System.Xml;
//-----
public ActionResult QueryGenerator(string naturalQuery)
{
XmlDocument doc = new XmlDocument();
doc.Load(path_to_xml);
string jsonText = JsonConvert.SerializeXmlNode(doc);
return Json( new{xmlString = jsonText}, JsonRequestBehavior.AllowGet);
}
[JAVASCRIPT]
$http({
method: 'GET',
url: baseUrl + 'QueryGenerator',
params: params
}).
success(function (data, status, config) {
$scope.xmlList = JSON.parse(data.xmlString);
}).
error(function (data, status, config) {
alert('error');
});
[HTML]
<xmp ng-repeat="node in xmlList track by $index">
<Discource>
<Token>
<Term>{{node.Term}}</Term>
<PosTag>{{node.PosTag}}</PosTag>
<Restriction>{{node.Restriction}}</Restriction>
<Synonyms>{{node.Synonyms}}</Synonyms>
</Token>
</Discource>
</xmp>
答案 4 :(得分:0)
在你的最后一行使用
Response.Write(doc.InnerXml);
答案 5 :(得分:0)
使用XmlDatasource和数据控件(GridView / Repeator)显示XML文档数据。
<?xml version="1.0" encoding="iso-8859-1"?>
<root>
<foo>
<bar>One</bar>
</foo>
<foo>
<bar>Two</bar>
</foo>
</root>
标记:
<asp:XmlDataSource
runat="server"
id="XmlDataSource1"
XPath="root/foo"
DataFile="file.xml" />
<asp:Repeater ID="Repeater1"
runat="server"
DataSourceID="XmlDataSource1">
<ItemTemplate>
<h2>Bar :<%#XPath("bar")%> </h2>
</ItemTemplate>
</asp:Repeater>
答案 6 :(得分:0)
请尝试以下代码:
<link rel="prev" href="http://www.example.com/article-part1.html">
<link rel="next" href="http://www.example.com/article-part3.html">
答案 7 :(得分:0)
只需使用XMP标签......它将缩进并使您的xml几乎看起来漂亮!
<XMP>
<po>
<BeginningSegment_BEG>
<TransactionSetPurposeCode_01>00</TransactionSetPurposeCode_01>
<PurchaseOrderTypeCode_02>NE</PurchaseOrderTypeCode_02>
<PurchaseOrderNumber_03>PO01183082</PurchaseOrderNumber_03>
<Date_05>2016-12-14</Date_05>
</BeginningSegment_BEG>
</po>
</XMP>
在Chrome和IE中它对我有用