在ASP.NET C中读取XML# [英] Reading XML in ASP.NET C#

查看:80
本文介绍了在ASP.NET C中读取XML#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请大家,我正在尝试阅读以下XML字符串,但似乎我在这里做错了。这是XML字符串



Please guys, i'm trying to read the following XML String, but it seems like there's something i'm doing wrong here. Here is the XML String

<?xml version="1.0" encoding="utf-8" ?>
<TRANS_NET>
<REQUEST_ID>0</REQUEST_ID>
<REQUEST_DATE>0000-000</REQUEST_DATE>
<RESPONSE_CODE>003</RESPONSE_CODE>
<RESPONSE_REASON>
<ERROR>
<ERROR_CODE>243</ERROR_CODE>
<ERROR_CODE>003</ERROR_CODE>
<ERROR_CODE>040</ERROR_CODE>
<ERROR_CODE>017</ERROR_CODE>
<ERROR_CODE>039</ERROR_CODE>
</ERROR>
</RESPONSE_REASON>
</TRANS_NET>





这是我的代码阅读它



Here Is my Code for reading it

using (System.Xml.XmlReader xmlReader = System.Xml.XmlReader.Create(strReader))
                {
                    while (xmlReader.Read())
                    {
                        if (xmlReader.NodeType == System.Xml.XmlNodeType.Element)
                        {
                            //if (xmlReader.Name == "TRANS_NET")
                            //{
                                switch (xmlReader.Name)
                                {
                                    case "TRANS_NET":
                                        plainText += "Response \r\n";
                                        break;
                                    case "REQUEST_ID":
                                        plainText += String.Format("Request ID = {0} \r\n", xmlReader.Value);
                                        break;
                                    case "REQUEST_DATE":
                                        plainText += String.Format("Request Date = {0} \r\n", xmlReader.Value);
                                        break;
                                    case "RESPONSE_CODE":
                                        plainText += String.Format("Response Code = {0} \r\n", xmlReader.Value);
                                        break;
                                    case "RESPONSE_REASON":
                                        plainText += "An Error Was Encountered \r\n";
                                        break;
                                    case "ERROR":
                                        plainText += "Error Codes List \r\n";
                                        break;
                                    case "ERROR_CODE":
                                        if (xmlReader.Read())
                                        {
                                            plainText += String.Format("Error Code = {0} \r\n", xmlReader.Value);
                                        }
                                        break;
                                    default:
                                        plainText += "\r\n";
                                        break;
                                }
                            //}
                        }
                    }
                }





这是我得到的结果

回复

请求ID =

请求日期=

响应代码=

遇到错误

错误代码清单

错误代码= 243

错误代码= 003

错误代码= 040

错误代码= 017

错误代码= 039



这里的问题是

请求ID =

请求日期=

响应代码=值不显示



谢谢



And here is the result that i get
Response
Request ID =
Request Date =
Response Code =
An Error Was Encountered
Error Codes List
Error Code = 243
Error Code = 003
Error Code = 040
Error Code = 017
Error Code = 039

The problem here is that the
Request ID =
Request Date =
Response Code = Values are not display

Thanks

推荐答案

在xml中,当谈到对象模型(xml文档模型)时,值本身就是text类型的节点。您可以在调试代码时看到它。第一个读取将节点作为元素,下一个读取将值作为文本。

您可以在自己的代码中看到ERROR_CODE处理方式不同,并且它运行良好...
In xml, when talking about object model (xml document model), the values themselves are nodes of type text. You can see it while debugging your code. The first read brings the node as element and the next brings the value as a text.
You can see in your own code that ERROR_CODE treated differently, and it's work well...


这篇关于在ASP.NET C中读取XML#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆