2016-09-21 1 views
0

xml2parsing으로 데이터를 추출하여 사용자 정의 json을 작성하려고합니다. 지금까지 내가 가진이 :xml2js 구문 분석 - 메타 데이터 속성 값을 추출하는 방법?

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을 모르고 DATA_2).

metadataForJson.item[0] 

에 대한 CONSOLE.LOG에서

, 나는 밖으로, 항상 나에게 sintax 오류가 있습니다 '$'의 가치를 얻을하는 방법을 알고하지 마십시오
{ '$': { name: 'DATA_1', type: 'xs:string', length:'2102'} } 

를 얻을. 어떤 아이디어? 고맙습니다!

+0

도움이 될 수 있습니다 시도? 어떤 종류의 구문 오류가 발생합니까? 더 많은 정보를 제공 할 수 있습니까? – shaochuancs

답변

1

단지

metadataForJson.item[0].$.name 

또는

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

이 관련 게시물 "에 '$'의 가치를"당신의 방법은 무엇 https://stackoverflow.com/a/22028956/730733

+0

와우 ... 나는 이미 첫 번째 옵션을 시도해 보았지만 꽤 shure했습니다.하지만 다시 shure로 확인했는데 작동합니다. – ljerka

+0

나는이 느낌을 알고있다 ... – DaviideSnow