2016-10-28 5 views
0

저는 nodejs-expressjs에서 작업 중이며 원시 XML로 응답했습니다. 내가 자바 스크립트 배열 또는 json 배열로 변환 할 수 있도록 내가 도메인 이름과 그 상태를 retrive 수 있습니다. 그 이름과 상태를 HTML 파일에 표시하고 싶습니다. Fowling 내가원시 XML을 JSON으로 구문 분석

jsonXml = JSON.stringify (result.OPS_envelope.body.data_block.dt_assoc.item)로 변환이 내 원시 XML

<?xml version='1.0' encoding="UTF-8" standalone="no" ?> 
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd"> 
<OPS_envelope> 
<header> 
    <version>0.9</version> 
    </header> 
<body> 
    <data_block> 
    <dt_assoc> 
    <item key="response_code">200</item> 
    <item key="response_text">Command completed successfully</item> 
    <item key="attributes"> 
    <dt_assoc> 
     <item key="lookup"> 
     <dt_assoc> 
     <item key="items"> 
     <dt_array> 
      <item key="0"> 
      <dt_assoc> 
      <item key="status">taken</item> 
      <item key="domain">ashok.com</item> 
      </dt_assoc> 
      </item> 
      <item key="1"> 
      <dt_assoc> 
      <item key="domain">ashok.net</item> 
      <item key="status">available</item> 
      </dt_assoc> 
      </item> 
      <item key="2"> 
      <dt_assoc> 
      <item key="domain">ashok.org</item> 
      <item key="status">available</item> 
      </dt_assoc> 
      </item> 
      <item key="3"> 
      <dt_assoc> 
      <item key="domain">ashok.biz</item> 
      <item key="status">available</item> 
      </dt_assoc> 
      </item> 
      <item key="4"> 
      <dt_assoc> 
      <item key="status">available</item> 
      <item key="domain">ashok.me</item> 
      </dt_assoc> 
      </item> 
      <item key="5"> 
      <dt_assoc> 
      <item key="domain">ashok.website</item> 
      <item key="status">available</item> 
      <item key="has_claim">0</item> 
      </dt_assoc> 
      </item> 
     </dt_array> 
     </item> 
     <item key="response_text">Command completed successfully.</item> 
     <item key="response_code">200</item> 
     <item key="is_success">1</item> 
     <item key="count">6</item> 
     </dt_assoc> 
     </item> 
     <item key="personal_names"> 
     <dt_assoc> 
     <item key="response_code"></item> 
     </dt_assoc> 
     </item> 
    </dt_assoc> 
    </item> 
    <item key="request_response_time">8.066</item> 
    <item key="protocol">XCP</item> 
    <item key="is_search_completed">1</item> 
    <item key="is_success">1</item> 
    <item key="action">REPLY</item> 
    </dt_assoc> 
    </data_block> 
</body> 
</OPS_envelope> 

이다; console.dir (jsonXml);

'["Command completed successfully",{"dt_assoc":{"item":[{"dt_assoc":{"item":[{"dt_array":{"item":[{"dt_assoc":{"item":["anjali.com","taken"]}},{"dt_assoc":{"item":["available","anjali.net"]}},{"dt_assoc":{"item":["anjali.org","available"]}},{"dt_assoc":{"item":["available","anjali.biz"]}},{"dt_assoc":{"item":["available","anjali.me"]}},{"dt_assoc":{"item":["anjali.website","available","0"]}}]}},"Command completed successfully.","200","1","6"]}},{"dt_assoc":{"item":""}}]}},"200","REPLY","1","1","XCP","8.067"]' 

제가

VAR의 JSON = JSON.parse (jsonXml)를 사용할 때

console.log (json);

[ 'Command completed successfully', 
    { dt_assoc: { item: [Object] } }, 
    '200', 
    'REPLY', 
    '1', 
    '1', 
    'XCP', 
    '8.067' ] 

나는 도메인 이름을 검색 할 그리고 그들은 자바 스크립트 배열로 JSON 출력에서 ​​사용할 수/촬영하지만 난 그렇게 할 수 없습니다입니다.

또는 domain_name 및 상태를 검색하는 다른 방법을 알고 계십니까?

동일하게 도와주세요.

+0

왜 XML을 JSON으로 변환해야합니까? 확실히 값을 추출하는 데 사용할 수있는 XML 라이브러리가 있습니까? – Joe

+0

이 용도로 사용하는 라이브러리 이름을 알려주십시오. – web

+0

가능한 복제 http://stackoverflow.com/questions/14890655/the-best-node-module-for-xml-parsing –

답변

0

다양한 방법으로이 작업을 수행 할 수 있습니다.

w3schoolsmdn에서 찾을 수있는 DOM 파서를 사용할 수 있습니다.

JQuery 또는 xml2json 또는 많은 npm packages 중 하나와 같은 라이브러리를 사용할 수 있습니다.

직접 해보니 여기에는 blog입니다.