请教:asp.net读取gbk编码的xml文件

剑胆琴心 2011-06-09 02:34:56
XmlTextReader rd = new XmlTextReader("http://192.2.2.8/xml.aspx");
///http://192.2.2.8/xml.aspx是个gbk编码的xml,只能读出来前两行数据
rd.WhitespaceHandling = WhitespaceHandling.None;
while (rd.Read()) //遍历节点
{
Response.Write(rd.Name);
}
rd.Close();

///xml.aspx文件
<?xml version="1.0" encoding="gbk" ?>
<RESULTSET num="10">
<ROW id="0">
<ID>2083</ID>
<NAME>青岛大学成人教育学院</NAME>
<X>40531809.8985</X>
<Y>3996660.1981</Y>
<TIME>2011</TIME>
<LAYERID>L808070101</LAYERID>
<TABLENAME>L808070101</TABLENAME>
<OBJECTID>208</OBJECTID>
<DATAOWNERNAME>市教育局</DATAOWNERNAME>
<METADATAFOUNDATIONTIME>3/22/2010 0:0:0</METADATAFOUNDATIONTIME>
</ROW>
</RESULTSET>


貌似这种写法不行,只能读出来xml文件的前两行,请教
...全文
148 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
剑胆琴心 2011-06-10
  • 打赏
  • 举报
回复
找到了解决的方法,用js接受远程的xml,折中吧
可惜这个xml不是webservice,否则用webservice调用也没问题
剑胆琴心 2011-06-09
  • 打赏
  • 举报
回复
暂时没搞定
子夜__ 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 luqd 的回复:]

好的,谢谢
[/Quote]
搞定了没有?
剑胆琴心 2011-06-09
  • 打赏
  • 举报
回复
好的,谢谢
tigerjacky 2011-06-09
  • 打赏
  • 举报
回复
用dataset.ReadXml 试试看,
剑胆琴心 2011-06-09
  • 打赏
  • 举报
回复
还有没有高手来帮忙下~~?
剑胆琴心 2011-06-09
  • 打赏
  • 举报
回复
读远程的还是不行,
不过出现了一个有意思的问题,读取本地自己新建的a.xml(encoding编码也是gbk)
结果是:
- - 1 CSDN 1988/05/05 男 - 2 王羲之 1988/05/05 男 - 3 马云 1988/04/05 男
剑胆琴心 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 liuchaolin 的回复:]
读不取东东,原因可能是你的不是gb2312,是utf-8,

System.Text.Encoding.GetEncoding("GB2312")
换成
System.Text.Encoding.GetEncoding("utf-8")
看看
[/Quote]
好的
md5e 2011-06-09
  • 打赏
  • 举报
回复
还有一种可能就是缓存问题
md5e 2011-06-09
  • 打赏
  • 举报
回复
读不取东东,原因可能是你的不是gb2312,是utf-8,

System.Text.Encoding.GetEncoding("GB2312")
换成
System.Text.Encoding.GetEncoding("utf-8")
看看
剑胆琴心 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 liuchaolin 的回复:]
如果你的xml是远程的到是好办

WebRequest WReq;
WebResponse WResp;
StreamReader sr;
string retValue;
string url = "http://xxx.xxx.com/xxx.xml";

WReq = WebRequest.Create(url);
WResp = WReq.Ge……
[/Quote]

string retValue = "";
WebRequest httpReq = WebRequest.Create("http://15.2.22.142:6061/a.xml");
WebResponse httpRes = httpReq.GetResponse();
StreamReader sr = new StreamReader(httpRes.GetResponseStream(), System.Text.Encoding.GetEncoding("GB2312"));
retValue = sr.ReadToEnd();
sr.Close();
Response.Write(retValue);
是空的,什么业读不出来
剑胆琴心 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kingdom_0 的回复:]
引用楼主 luqd 的回复:
XmlTextReader rd = new XmlTextReader("http://192.2.2.8/xml.aspx");
///http://192.2.2.8/xml.aspx是个gbk编码的xml,只能读出来前两行数据
rd.WhitespaceHandling = WhitespaceHandling.None;
while (rd.Read……
[/Quote]
呵呵,xml.aspx是xml文件
kingdom_0 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 luqd 的回复:]
XmlTextReader rd = new XmlTextReader("http://192.2.2.8/xml.aspx");
///http://192.2.2.8/xml.aspx是个gbk编码的xml,只能读出来前两行数据
rd.WhitespaceHandling = WhitespaceHandling.None;
while (rd.Read()) //遍……
[/Quote]
http://192.2.2.8/xml.aspx这个也不是xml文件啊……
把数据放到xml.xml文件当中
用XDocument或者XElement加载,遍历。
md5e 2011-06-09
  • 打赏
  • 举报
回复
如果你的xml是远程的到是好办

WebRequest WReq;
WebResponse WResp;
StreamReader sr;
string retValue;
string url = "http://xxx.xxx.com/xxx.xml";

WReq = WebRequest.Create(url);
WResp = WReq.GetResponse();
sr = new StreamReader(WResp.GetResponseStream(), Encoding.GetEncoding("GB2312"));
retValue = sr.ReadToEnd();
sr.Close();
剑胆琴心 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 karascanvas 的回复:]
引用 2 楼 liuchaolin 的回复:

貌似.net只能操作uft-8格式的文档,请将你的xml文档用记事本打开,另存为,下边有一个编码类型,选择utf-8,然后确认


怎么可能呢,指定编号再读就好了。
[/Quote]
远程的url方式的gbk编码xml,怎么指定呢?读取的时候?
种草德鲁伊 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liuchaolin 的回复:]

貌似.net只能操作uft-8格式的文档,请将你的xml文档用记事本打开,另存为,下边有一个编码类型,选择utf-8,然后确认
[/Quote]

怎么可能呢,指定编号再读就好了。
剑胆琴心 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 syb1045 的回复:]
XmlTextReader reader = new XmlTextReader(

Server.MapPath("mycompany.xml"));
reader.WhitespaceHandling = WhitespaceHandling.None;

XmlDocument xmlDoc = new XmlDocument();

//将文件加载到XmlD……
[/Quote]
谢谢,我试下
剑胆琴心 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liuchaolin 的回复:]
貌似.net只能操作uft-8格式的文档,请将你的xml文档用记事本打开,另存为,下边有一个编码类型,选择utf-8,然后确认
[/Quote]
这个是另外一个系统提供的xml,程序之间的结合不能用记事本另存吧
md5e 2011-06-09
  • 打赏
  • 举报
回复
貌似.net只能操作uft-8格式的文档,请将你的xml文档用记事本打开,另存为,下边有一个编码类型,选择utf-8,然后确认
加载更多回复(1)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧