ОК, я нахожусь в своем уме. Кажется, это должно быть совершенно тривиальной задачей, но через час я все еще просто не могу заставить ее работать.Как я могу получить узлы XML из этого XML в классическом ASP (MSXML)?
Я пытаюсь получить список часовых поясов от Campaign Monitor API; к сожалению, страница, которую мне нужно сделать, написана в классическом ASP/Javascript, поэтому я не могу просто использовать обертку API.
Я делаю запрос, как это:
var request = Server.CreateObject("Msxml2.ServerXMLHTTP");
request.open("GET", apiurl + "/User.GetTimezones?ApiKey=" + apikey, false);
request.send();
Правильный XML возвращается с сервера, следующим образом:
<anyType d1p1:type="ArrayOfString" xmlns:d1p1="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://api.createsend.com/api/">
<string>(GMT) Casablanca</string>
<string>(GMT) Coordinated Universal Time</string>
<string>(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London</string>
<string>(GMT) Monrovia, Reykjavik</string>
<string>(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna</string>
<string>(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague</string>
<string>(GMT+01:00) Brussels, Copenhagen, Madrid, Paris</string>
(...and so on - I've truncated for the purpose of this question)
</anyType>
Тогда я загрузке XML в документ MSXML :
var response = Server.CreateObject("Msxml2.DOMDocument.4.0");
response.async = false;
response.validateOnParse = false;
response.resolveExternals = false;
response.setProperty("SelectionNamespaces", "xmlns:d1p1='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://api.createsend.com/api/'");
response.setProperty("SelectionLanguage", "XPath");
if (response.load(request.responseXML))
{
// If I uncomment this, the XML is correctly written out
// Response.Write(response.xml);
var nodes = response.selectNodes("//string");
// No nodes are found, this is always zero
Response.Write(nodes.length);
for (var x = 0; x < nodes.length; x++)
{
// Do something with each time zone value here
}
}
Проблема, как вы можете видеть из комментариев, состоит в том, что я не могу показаться, string ", независимо от того, что я делаю. Я довольно ржавый, когда дело доходит до ASP/Javascript - я подозреваю, что это что-то делать с пространствами имен (я знаю, что у меня были проблемы с этим в прошлом), но я не уверен, что.
Может ли кто-нибудь указать, что я делаю неправильно? Любая помощь очень ценится!
Похоже, что в моем знании XML есть немного пробела, лучше всего читать! Все работают сейчас, очень благодарны, спасибо. –