2013-08-08 4 views
-2

Я знаком с ASP.NET, но не с Visual Basic.ASP Classic VBScript для ASP.NET Преобразование C#

Вот Visual Basic код:

myxml="http://api.ipinfodb.com/v3/ip-city/?key="&api_key&"&ip=" &UserIPAddress&"&format=xml" 
set xml = server.CreateObject("MSXML2.DOMDocument.6.0") 
xml.async = "false" 
xml.resolveExternals = "false" 
xml.setProperty "ServerHTTPRequest", true 
xml.load(myxml) 
response.write "<p><strong>First result</strong><br />" 
for i=0 to 10 
    response.write xml.documentElement.childNodes(i).nodename & " : " 
    response.write xml.documentElement.childNodes(i).text & "<br/>" 
NEXT 
response.write "</p>" 

Что происходит в этом коде?

Как я могу преобразовать это в ASP.NET (C#)?

+0

Что делает этот код на самом деле * сделать *? Обычно вы не хотите выполнять прямое преобразование с одного языка на другой или одну структуру или парадигму на другую. Вместо этого вы хотите реализовать желаемую функциональность в целевой среде. Какова конечная функциональность, которую вы хотите достичь? – David

+0

Привет @David Я получаю этот пример с этого сайта http://ipinfodb.com/ip_location_api.php здесь он находится в форме VB, но я не понимаю, что я хочу немного помочь в этом, мне это нужно в ASPX.Net – Blu

+0

Так что это выглядит для меня, как этот код выходит на URL ('api.ipinfodb.com') и загружает XML, тогда он перебирает первые 10 дочерних узлов корня XML-документа и помещает имя и текст узла в который помещается в DOM веб-страницы. –

ответ

1

Судя по Основному кода Визуальный, я думаю, вы должны создать два метода «преобразования» это на # веб-страницы ASP.NET C:

  1. метод LoadXmlData - использовать XmlDocument для загрузки из URL через функцию XmlDocumentLoad. Например, прочтите ASP.net load XML file from URL.

  2. Метод BuildDisplay - используйте ASP.NET PlaceHolder или Panel, чтобы создать контейнер для ввода тега абзаца и отдельных результатов.

+0

спасибо, что это подсказка, что я хочу спасибо – Blu

2

Основываясь на быстром взгляде на сайт, на который вы ссылаетесь в комментарии, похоже, что предполагаемая функциональность заключается в том, чтобы сделать запрос по URL-адресу и получить ответ. Первый пример, приведенный на этом сайте:

http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&ip=74.125.45.100 

Вы можете, вероятно, использовать что-то вроде the System.Net.WebClient object, чтобы сделать запрос HTTP и получить ответ. Пример в MSDN может быть изменен для вашего URL-адреса. Может быть, что-то вроде этого:

var client = new WebClient(); 
client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); 
var data = client.OpenRead(@"http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&ip=74.125.45.100"); 
var reader = new StreamReader(data); 
var result = reader.ReadToEnd(); 
data.Close(); 
reader.Close(); 

(. Там же the WebRequest class, который, как представляется, разделяют примерно одинаковые функции)

В этот момент переменная result содержит ответ от API. Который вы можете справиться, как вам нужно.