我有一个与AJAX,XML和Prototype相关的基本问题。
我正在尝试解析此XML文档:
<?xml version="1.0" encoding="utf-8"?>
<NavigationData>
<OrderOfCategories>
<CategoryName Num="1">location</CategoryName>
<CategoryName Num="2">real_estate</CategoryName>
<CategoryName Num="3">services</CategoryName>
<CategoryName Num="4">learning</CategoryName>
<CategoryName Num="5">automobile</CategoryName>
<CategoryName Num="6">personals</CategoryName>
<CategoryName Num="7">community</CategoryName>
<CategoryName Num="8">for_sale</CategoryName>
<CategoryName Num="9">classifides</CategoryName>
</OrderOfCategories>
</NavigationData>
使用此javascript代码(例如):
function createNav (response) {
var xmlData = response.responseXML.documentElement.getElementsByTagName("CategoryName")[1].childNode[0].nodeValue;
window.alert(xmlData);
}
// end of FUNCTION createNav
function loadNav () {
new Ajax.Request("http://www.listedcities.com/listings/geo_templates/freshstart/external/xml/global_data.xml",
{
method: 'get',
contentType: 'text/xml',
onSuccess: createNav,
onFailure: function () { window.alert("failed") }
});
}
函数loadNav加载XML文件并将其传递给另一个要解析的函数。原因是应用程序加载多个xml文件而不是一个大文件,较小的XML文件的文件名存储在'global_data.xml'XML文件中。
我遇到这个代码的问题是警报传递'null'值,或者在某些情况下根本不会触发任何内容。
我希望通过'global_data.xml'文件中的第一个节点值来触发警报。
对于这些部分,我们非常感谢任何帮助。
小心。
答案 0 :(得分:0)
我设法破解了这个问题,以获得有效的代码:
var xmlData = response.responseXML.documentElement.getElementsByTagName("CategoryName")[1].childNodes[0].nodeValue;
我需要额外的
childNodes[x]
在那里引用。