Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自xml2js的奇怪json数据_Javascript_Json_Node.js_Xml_Xml2js - Fatal编程技术网

Javascript 来自xml2js的奇怪json数据

Javascript 来自xml2js的奇怪json数据,javascript,json,node.js,xml,xml2js,Javascript,Json,Node.js,Xml,Xml2js,我试图在Nodejs中将XML解析为JSON,但是我得到了一些非常奇怪的JSON数据 这是XML数据: <?xml version="1.0" encoding="UTF-8" ?> <RESPONSE> <SINGLE> <KEY name="users"><MULTIPLE> <SINGLE> <KEY name="id"><VALUE>1</VALUE> </KEY> &

我试图在Nodejs中将XML解析为JSON,但是我得到了一些非常奇怪的JSON数据

这是XML数据:

<?xml version="1.0" encoding="UTF-8" ?>
<RESPONSE>
<SINGLE>
<KEY name="users"><MULTIPLE>
<SINGLE>
<KEY name="id"><VALUE>1</VALUE>
</KEY>
<KEY name="username"><VALUE>guest</VALUE>
</KEY>
<KEY name="firstname"><VALUE>Guest user</VALUE>
</KEY>
<KEY name="lastname"><VALUE> </VALUE>
</KEY>
<KEY name="fullname"><VALUE>Guest user  </VALUE>
</KEY>
<KEY name="email"><VALUE>root@localhost</VALUE>
</KEY>
<KEY name="address"><VALUE null="null"/>
</KEY>
<KEY name="phone1"><VALUE null="null"/>
</KEY>
<KEY name="phone2"><VALUE null="null"/>
</KEY>
<KEY name="icq"><VALUE null="null"/>
</KEY>
<KEY name="skype"><VALUE null="null"/>
</KEY>
<KEY name="yahoo"><VALUE null="null"/>
</KEY>
<KEY name="aim"><VALUE null="null"/>
</KEY>
<KEY name="msn"><VALUE null="null"/>
</KEY>
<KEY name="department"><VALUE></VALUE>
</KEY>
<KEY name="institution"><VALUE null="null"/>
</KEY>
<KEY name="idnumber"><VALUE null="null"/>
</KEY>
有人能帮我建立一个只检索“IDNumber”的循环吗? 或者一种清理json的方法,因为这看起来有点错误

提前谢谢

编辑

XML来自Moodle,但我找到了一种检索json数据而不是XML的方法。因此,解析不再是必要的

你可以试试这个

const transform = require('camaro')

const xml = `your xml goes here`

const result = transform(xml, {
    id: '//KEY[@idnumber]'
})

console.log(JSON.stringify(result, null, 2))

为什么不直接解析XML并使用DOM方法来获取所需的值呢?因为我不知道这是什么意思?你能再解释一下吗?谢谢你的回复!!!谢谢你的回复!但是我从Moodle那里得到了这些数据,显然有一种方法可以检索json数据而不是XML。所以我不再需要解析XML了,但是谢谢!!
const transform = require('camaro')

const xml = `your xml goes here`

const result = transform(xml, {
    id: '//KEY[@idnumber]'
})

console.log(JSON.stringify(result, null, 2))