2016-09-21 1 views
0

Я пытаюсь создать пользовательский json, извлекая данные с помощью xml2parsing. До сих пор у меня есть это:xml2js parsing - как извлечь значение атрибута метаданных?

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> 

Я был в состоянии извлечь все значения из «данных», но не знаю, как получить имя элемента метаданных (данные_1 и данные_2).

В console.log для

metadataForJson.item[0] 

Я получаю

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

Не знаю, как получить значение '$', оно всегда дает мне синтаксисом ошибку. Есть идеи? Thanx!

+0

Что ваш метод "получить значение '$' выход"? Какая синтаксическая ошибка вы получаете? Можете ли вы предоставить дополнительную информацию? – shaochuancs

ответ

1

просто попробовать

metadataForJson.item[0].$.name 

ИЛИ

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

Это родственный пост может помочь https://stackoverflow.com/a/22028956/730733

+0

Wow ... Я был довольно уверен, я уже пробовал первый вариант, но я снова проверил, чтобы быть shure, и он работает. – ljerka

+0

Я знаю это чувство ... – DaviideSnow