我很难弄清楚如何使用xml-js
。当我运行代码时,我看到了输出。但是当我试图从一个特定的键获取一个值时,它给了我一个未定义的或无法读取的未定义错误的属性。我在下面添加了我的代码。我做错了什么?
var convert = require('xml-js');
var xml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
' <title>Happy</title>' +
' <todo>Work</todo>' +
' <todo>Play</todo>' +
'</note>';
var result2 = convert.xml2json(xml, {compact: true, spaces: 4});
console.log(result2);
假设我想要title
的值,它是'happy'
。我试着这样做,但它不起作用...result2.title;
甚至尝试过result2._text;
,但都不起作用。任何帮助都将不胜感激。谢谢!!
发布于 2018-05-29 06:26:23
<title>
位于<note>
内部,因此要访问它,您应该执行以下操作:
result2.note.title
但是的主要问题是,您使用的是.xml2json
方法而不是.xml2js
,这将产生一个JSON字符串而不是对象。
从docs
要将
文本转换为JavaScript对象,请使用xml2js()。要将XML文本转换为JSON文本,请使用xml2json()。
var convert = require('xml-js');
var xml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
' <title>Happy</title>' +
' <todo>Work</todo>' +
' <todo>Play</todo>' +
'</note>';
var result2 = convert.xml2js(xml, {compact: true});
console.log(result2.note.title); // { _text: 'Happy' }
console.log(result2.note.title._text); // 'Happy'
spaces
选项本身适用于xml2json
,因此您不需要它。
在使用.xml2json
时,您试图访问字符串的title
或note
属性,这些属性当然不存在。
''.title; // undefined
''.note; // undefined
''.note.title // TypeError cannot read property 'title' of undefined
注意:如果您使用的是npm
1.6,这意味着您使用的是不再支持的Node.js版本,您应该更新到v8.x.x (LTS)或最新的v10.x.x
https://stackoverflow.com/questions/50574011
复制相似问题