我从Web服务中获取了一块XML.客户端希望在页面上的标签中看到此原始XML.当我尝试这个:
lblXmlReturned.Text = returnedXml;
Run Code Online (Sandbox Code Playgroud)
只显示文本,没有任何XML标记.我需要包含从Web服务返回的所有内容.
这是返回的XML的精简样本:
<Result Matches="1">
<VehicleData>
<Make>Volkswagen</Make>
<UK_History>false</UK_History>
</VehicleData>
<ABI>
<ABI_Code></ABI_Code>
<Advisory_Insurance_Group></Advisory_Insurance_Group>
</ABI>
<Risk_Indicators>
<Change_In_Colour>false</Change_In_Colour>
</Risk_Indicators>
<Valuation>
<Value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></Value>
</Valuation>
<NCAP>
<Pre_2009></Pre_2009>
</NCAP>
</Result>
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能让它出现在屏幕上?我注意到Stack Overflow在将XML放在scren上做得非常好.我查看了源代码并使用了<pre>标签.这是我必须使用的东西吗?
Bal*_*a R 13
使用<asp:Literal />它的Mode设置Encode比处理手动编码Label的文本更容易
<asp:Literal runat="server" ID="Literal1" Mode="Encode" />
Run Code Online (Sandbox Code Playgroud)
您需要首先对XML 进行HtmlEncode(它会转义像<和这样的特殊字符>):
string encodedXml = HttpUtility.HtmlEncode(xml);
Label1.Text = encodedXml;
Run Code Online (Sandbox Code Playgroud)
在PRE标签中包围它将有助于保留格式,因此您可以这样做:
string encodedXml = String.Format("<pre>{0}</pre>", HttpUtility.HtmlEncode(xml));
Label1.Text = encodedXml;
Run Code Online (Sandbox Code Playgroud)
正如Bala R所提到的,你可以使用一个Literal控件,Mode="Encode"因为这个自动HtmlEncodes任何字符串.但是,这也会对PRE您添加到字符串中的任何标记进行编码,这是您不想要的.我认为你也可以white-space:pre在CSS中使用与PRE标签相同的东西.
| 归档时间: |
|
| 查看次数: |
4790 次 |
| 最近记录: |