我正在尝试创建自己的XML到JSON转换器。一个问题,我似乎无法弄清楚如何读取XML数据。下面的代码是尝试从字符串中读取它的失败。有没有办法从文件中读取它作为xml?
function xmlToJson(xml) {
// Create the return object
var obj = {};
debugger;
if (xml.nodeType == 1) { // element
// do attributes
if (xml.attributes.length > 0) {
obj["@attributes"] = {};
for (var j = 0; j < xml.attributes.length; j++) {
var attribute = xml.attributes.item(j);
obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
}
}
} else if (xml.nodeType == 3) { // text
obj = xml.nodeValue;
}
return obj;
};
var xml = "<subject><story><unique_id>665c43</unique_id><story_url>http://this ismystory.com</story_url></story></subject>";
xmlToJson(xml);
答案 0 :(得分:0)
在调用此函数之前,请添加此行。
def my_reduce(obj1, obj2):
if not isinstance(obj1,dict):
return reduce(my_reduce,[{},obj1,obj2])
try:
obj1[obj2[0]] = max(obj1[obj2[0]][0],obj2[1]),min(obj1[obj2[0]][1],obj2[2])
except KeyError:
obj1[obj2[0]] = obj2[1:]
return obj1
my_list = [('dog',12,2), ('cat',15,1), ('dog',11,1), ('cat',15,2), ('dog',10,3), ('cat',16,3)]
print reduce(my_reduce,my_list)
注意:您可能必须使用变量名称。
无论哪种方式,要求是必须将字符串转换为var xml = jQuery.parseXML(xml);
。
看看是否能解决这个问题。
答案 1 :(得分:0)
如果您不想使用jQuery,也许可以尝试xml2js。
以下是xml2js github:
的示例var parseString = require('xml2js').parseString;
var xml = "<root>Hello xml2js!</root>"
parseString(xml, function (err, result) {
console.dir(result);
});