Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何显示XML?_C#_Asp.net_Xml - Fatal编程技术网

C# 如何显示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

现在,这段代码工作得很好,我的意思是它将XML文件保存在myGameSite的根目录中,文件名为myGames,但是当我尝试在浏览器中显示此XML文件时,正如您在代码中看到的,它只是简单地显示了这一点

    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