【问题标题】:xml2js parsing - how to extract metadata attribute value?xml2js 解析 - 如何提取元数据属性值?
【发布时间】:2017-01-29 15:32:48
【问题描述】:

我正在尝试通过使用 xml2parsing 提取数据来创建自定义 json。到目前为止,我有这个:

function createCustomJson(d{ 

    let dataFromXml = ""; 
    parseString(d, {trim: true}, function (err, result) {
        dataFromXml = JSON.stringify(result);
    });
    let dataJson = { data: [] };
    let dataObj = JSON.parse(dataFromXml);
    let dataForJson = dataObj.dataset.data[0];
    let metadataForJson = dataObj.dataset.metadata[0];         

    let pom = {};
    for (var i = 0; i < dataForJson.row.length; i++) {
        for (var j = 0; j < dataForJson.row[0].value.length; j++) {

            pom["METADATA-ATTR-NAME"] = dataForJson.row[i].value[j]; 
        }
        dataJson.data.push(pom); 
    } 

    let json = JSON.stringify(dataJson);
} 

xml:

<?xml version="1.0" encoding="utf-8"?>
<dataset  xmlns="http://example.com"  xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
    <metadata>
          <item name="DATA_1" type="xs:string" length="2102"/>
          <item name="DATA_2" type="xs:string" length="24"/>
    </metadata>
    <data>
        <row>
            <value>active</value>
            <value>whatever</value>
        </row>
    </data>
</dataset>

我能够从“数据”中提取所有值,但不知道如何获取元数据项名称(DATA_1 和 DATA_2)。

在console.log中,对于

metadataForJson.item[0]

我明白了

{ '$': { name: 'DATA_1', type: 'xs:string', length:'2102'} }

不知道如何获取 '$' 的值,它总是给我 sintax 错误。有任何想法吗?谢谢!

【问题讨论】:

  • 你有什么方法可以“获取 '$' 的价值”?你得到什么样的语法错误?你能提供更多信息吗

标签: javascript xml2js


【解决方案1】:

试试吧

metadataForJson.item[0].$.name

metadataForJson.item[0]['$'].name

此相关帖子可能对https://stackoverflow.com/a/22028956/730733有帮助

【讨论】:

  • 哇...我很确定我已经尝试了第一个选项,但我再次检查只是为了确定,它确实有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
相关资源
最近更新 更多