我想从XML文档中获取所有子项,并将名称放入variable = value。脚本需要是动态的 - xml节点名称将传递给脚本,没有任何硬编码。例如,如果xml文件的用户想要添加节点,他可以将该变量传递给JavaScript,它将在XML文件中引用该节点。
$.ajax({
type: 'GET',
url: xmlDoc,
dataType: 'xml',
success: function(xml) {
$(xml).find('Event').each(function() {
}
放入.find('Event')函数的内容是什么? $(this).children()
返回包含<Event></Event>
下每个节点名称的对象(例如EventLocation),$(this).children().text()
返回每个值(例如Office Building 1)。
我想为xml文件的每个节点添加一个变量,等于它的值。
示例XML文件将是:
<Events>
<Event>
<EventLocation>Office Building 1</EventLocation>
</Event>
</Events>
答案 0 :(得分:1)
因此,您要创建一个新变量,其名称是标记名称,其值是该标记的值。
除非使用eval函数,否则我认为不能这样做,我认为number of reasons不是一个好主意。但是因为你问了......在这里你走了:
$(xml).find('Event').children().each(function() {
eval(this.nodeName.toLowerCase() + '="' + $(this).text() + '"');
});
这将为您创建变量。然而,它非常脏并且容易出错。如果标记名称包含不能用作变量名称的字符,则它将崩溃。 eval也很慢,可能被黑客误用。根据您的要求,您可以使用其他选项,例如使用关联数组