【发布时间】:2017-06-01 05:10:18
【问题描述】:
使用 XmlTextReader 读取 XML 文件时出现错误。第一个网址正常,第二个网址失败。使用其他 URL 是正常的。只有这个网址有错误。
Dim url As String
'url = "http://test.damiedu.net/testxml.xml"
'url = "http://www.hrd.go.kr/hrdp/api/apiao/APIAO0101T.do?authKey=k8V0j828FdFfjZye2mNR6tJ6kHIfkoJI&outType=1&srchTraEndDt=20150631&srchTraStDt=20150101&sortCol=TR_NM_i&returnType=XML&pageSize=20&pageNum=1&sort=ASC&srchTraPattern=C1&srchPart=-99&apiRequstPageUrlAdres=/jsp/HRDP/HRDPO00/HRDPOA40/HRDPOA40_1.jsp&apiRequstIp=211.179.124.14"
Try
Dim euckr As System.Text.Encoding
euckr = System.Text.Encoding.GetEncoding("euc-kr")
Dim Client As WebClient
Dim test As Integer
Client = New WebClient
Client.Headers("accept-langquage") = "ko"
Dim reader As XmlTextReader
reader = New XmlTextReader(Client.OpenRead(url))
test = reader.Read.ToString
Do While reader.Read
If (reader.NodeType = XmlNodeType.Element) Then
If reader.Name = "address" Then
Response.Write("address" & reader.ReadElementString())
End If
If reader.Name = "instCd" Then
Response.Write("name" & reader.ReadElementString())
End If
End If
Loop
Catch ex As Exception
MsgBox(ex.Message, "faile")
End Try
【问题讨论】:
-
错误是什么,在哪里抛出?
-
您分配了一个
euckr = System.Text.Encoding.GetEncoding("euc-kr"),但从不使用它。http://www.hrd.go.kr/...URL 返回的 XML 确实是使用 EUC-KR 编码的(根据 Firefox),因此您需要使用它。或者更好的是使用来自this answer 的DownloadStringAwareOfEncoding()。 -
另外,我认为
"accept-langquage"应该是"Accept-Language"。
标签: asp.net xml vb.net xmltextreader