[英]Weird json data from xml2js
我正在嘗試在Node.js中將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:
{ RESPONSE:
{ SINGLE:
[ { KEY:
[ { '$': { name: 'users' },
MULTIPLE:
[ { SINGLE:
[ { KEY:
[ { '$': { name: 'id' }, VALUE: [ '1' ] },
{ '$': { name: 'username' }, VALUE: [ 'guest' ] },
{ '$': { name: 'firstname' }, VALUE: [ 'Guest user' ] },
{ '$': { name: 'lastname' }, VALUE: [ ' ' ] },
{ '$': { name: 'fullname' }, VALUE: [ 'Guest user ' ] },
{ '$': { name: 'email' }, VALUE: [ 'root@localhost' ] },
{ '$': { name: 'address' },
VALUE: [ { '$': { null: 'null' } } ] },
{ '$': { name: 'phone1' },
VALUE: [ { '$': { null: 'null' } } ] },
{ '$': { name: 'phone2' },
VALUE: [ { '$': { null: 'null' } } ] },
{ '$': { name: 'icq' }, VALUE: [ { '$': { null: 'null' } } ] },
{ '$': { name: 'skype' }, VALUE: [ { '$': { null: 'null' } } ] },
{ '$': { name: 'yahoo' }, VALUE: [ { '$': { null: 'null' } } ] },
{ '$': { name: 'aim' }, VALUE: [ { '$': { null: 'null' } } ] },
{ '$': { name: 'msn' }, VALUE: [ { '$': { null: 'null' } } ] },
{ '$': { name: 'department' }, VALUE: [ '' ] },
{ '$': { name: 'institution' },
VALUE: [ { '$': { null: 'null' } } ] },
{ '$': { name: 'idnumber' },
VALUE: [ { '$': { null: 'null' } } ] },
誰能幫我建立一個循環以僅檢索“ idnumbers”? 或清理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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.