C# 如何显示XML?
现在,这段代码工作得很好,我的意思是它将XML文件保存在myGameSite的根目录中,文件名为myGames,但是当我尝试在浏览器中显示此XML文件时,正如您在代码中看到的,它只是简单地显示了这一点C# 如何显示XML?,c#,asp.net,xml,C#,Asp.net,Xml,现在,这段代码工作得很好,我的意思是它将XML文件保存在myGameSite的根目录中,文件名为myGames,但是当我尝试在浏览器中显示此XML文件时,正如您在代码中看到的,它只是简单地显示了这一点 WebRequest req = HttpWebRequest.Create("http://example.com/example"); WebResponse res = req.GetResponse(); StreamReader sr = new StreamRe
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文件以及标记,并且我的asp.net和.netframework版本为2.0,因此请不要使用LINQ:(在最后一行中使用
System.Xml.XmlDocument
using(var writer = XmlWriter.Create(Response.Output, settings)) {
doc.Save(writer);
}
在您的最后一排使用
System.Xml.XmlDocument
using(var writer = XmlWriter.Create(Response.Output, settings)) {
doc.Save(writer);
}
既然您有可用的xml,如
str
,只需编写以下内容:
Response.Write(doc.InnerXml);
请注意,这不包括任何格式更改-如果需要,您需要再次写入xml(到输出),或加载刚写入的文件。您还需要将响应类型更改为“text/xml”。不相关,但请注意,您还应关闭编写器,最好使用using
:
Response.Write(str);
您也可以重复保存:
var settings = new XmlWriterSettings();
settings.Indent = true;
using(var writer = XmlWriter.Create(path, settings)) {
doc.Save(writer);
}
既然您有可用的xml,如str
,只需编写以下内容:
Response.Write(doc.InnerXml);
请注意,这不包括任何格式更改-如果需要,您需要再次写入xml(到输出),或加载刚写入的文件。您还需要将响应类型更改为“text/xml”。不相关,但请注意,您还应关闭编写器,最好使用using
:
Response.Write(str);
您也可以重复保存:
var settings = new XmlWriterSettings();
settings.Indent = true;
using(var writer = XmlWriter.Create(path, settings)) {
doc.Save(writer);
}
这样就可以了;)
");
编辑
也可以在文本区域中显示xml
<asp:TextBox ID="txtXml" runat="server" TextMode="MultiLine" Height="500px" Width="600px" />
这样就可以了;)
");
编辑
也可以在文本区域中显示xml
<asp:TextBox ID="txtXml" runat="server" TextMode="MultiLine" Height="500px" Width="600px" />
使用和数据控件(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>
酒吧:
使用和数据控件(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>
酒吧:
谷歌“漂亮的打印xml c”;e、 g
我相信你会找到工作代码的。这里有一个例子:
将doc.OuterXml
传递给您找到的函数;它将输出缩进的xml
将此xml设置为readonly more或some标签中的某个多行文本框;除非是textbox/textarea,否则您必须对其进行html编码(例如标签):
this.someLabel.Text=this.Server.HtmlEncode(prettyPrintedXml)
google“prettyPrintedXml c#”;e、 g
我相信你会找到工作代码的。这里有一个例子:
将doc.OuterXml
传递给您找到的函数;它将输出缩进的xml
将此xml设置为readonly more或some标签中的某个多行文本框;除非是textbox/textarea,否则您必须对其进行html编码(例如标签):
this.someLabel.Text=this.Server.HtmlEncode(prettyPrintedXml)
请尝试以下代码:
public static string IndentedPrint(XmlDocument doc)
{
using (MemoryStream memoryStream = new MemoryStream())
{
using (XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.Unicode))
{
xmlTextWriter.Formatting = Formatting.Indented;
doc.WriteContentTo(xmlTextWriter);
xmlTextWriter.Flush();
memoryStream.Flush();
memoryStream.Position = 0;
using (StreamReader sr = new StreamReader(memoryStream))
{
return sr.ReadToEnd();
}
}
}
}
请尝试以下代码:
public static string IndentedPrint(XmlDocument doc)
{
using (MemoryStream memoryStream = new MemoryStream())
{
using (XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.Unicode))
{
xmlTextWriter.Formatting = Formatting.Indented;
doc.WriteContentTo(xmlTextWriter);
xmlTextWriter.Flush();
memoryStream.Flush();
memoryStream.Position = 0;
using (StreamReader sr = new StreamReader(memoryStream))
{
return sr.ReadToEnd();
}
}
}
}
对于那些使用C#作为后端和angular作为前端mcv框架的人来说,下面的代码可以工作(某种解决方法)
[后端]
使用Newtonsoft.Json;
使用System.Xml;
//-----
公共操作结果查询生成器(字符串自然查询)
{
XmlDocument doc=新的XmlDocument();
文档加载(路径到xml);
字符串jsonText=JsonConvert.SerializeXmlNode(doc);
返回Json(新的{xmlString=jsonText},JsonRequestBehavior.AllowGet);
}
[JAVASCRIPT]
$http({
方法:“GET”,
url:baseUrl+'QueryGenerator',
params:params
}).
成功(功能(数据、状态、配置){
$scope.xmlList=JSON.parse(data.xmlString);
}).
错误(功能(数据、状态、配置){
警报(“错误”);
});
[HTML]
{{node.Term}
{{node.PosTag}
{{node.Restriction}
{{node.Synonyms}}
对于那些使用C#作为后端,使用angular作为前端mcv框架的人,以下代码将起作用(某种解决方法)
[后端]
使用Newtonsoft.Json;
使用System.Xml;
//-----
公共操作结果查询生成器(字符串自然查询)
{
XmlDocument doc=新的XmlDocument();
文档加载(路径到xml);
字符串jsonText=JsonConvert.SerializeXmlNode(doc);
返回Json(新的{xmlString=jsonText},JsonRequestBehavior.AllowGet);
}
[JAVASCRIPT]
$http({
方法:“GET”,
url:baseUrl+'QueryGenerator',
params:params
}).
成功(功能(数据、状态、配置){
$scope.xmlList=JSON.parse(data.xmlString);
}).
错误(功能(数据、状态、配置){
警报(“错误”);
});
[HTML]
{{node.Term}
{{node.PosTag}
{{node.Restriction}
{{node.Synonyms}}
只需使用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>
00
氖
PO01183082
2016-12-14
在您的浏览器中,它将如下所示:
它在Chrome和IE中对我有效,只需使用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>
00
氖
PO01183082
2016-12-14
在您的浏览器中,它将如下所示:
在Chrome和IE中,它对我来说很有效,你的意思是用浏览器打开文件……为什么要在文件路径中使用双斜杠?@Shekhar_Pro是的,我的意思是在浏览器中打开文件browser@MarcGravell因为逃跑的顺序,我不知道还有谁能成功work@mamoorkhan-您不必转义正斜杠/
,但您确实需要避开更常见的(在Windows路径中)反斜杠“\”。所谓显示,是指使用浏览器打开文件。?为什么要在文件路径中使用双斜杠?@Shekhar\u Pro是的,我的意思是在中打开文件browser@MarcGravell因为逃逸序列,我不知道还有谁能做到work@mamoorkhan-您不必转义正斜杠/
,但需要转义更常见的(在Windows路径中)bac