анализировать необработанный XML в JSON

Я работаю над nodejs-expressjs и получил ответ в виде необработанного XML. который я хочу преобразовать в массив javascript или массив json, чтобы я мог получить доменное имя и его статус. Это имя и статус я хочу показать в файле HTML. Фаулинг — это мой необработанный 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>

Я преобразовал его в

jsonXml = JSON.stringify(result.OPS_envelope.body.data_block.dt_assoc.item); 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 в виде массива javascript, но я не могу этого сделать.

Или, может быть, вы знаете какой-либо другой способ получить имя_домена и статус.

Пожалуйста, помогите мне для того же.


person web    schedule 28.10.2016    source источник
comment
Зачем сначала конвертировать XML в JSON? Наверняка есть XML-библиотека, которую можно использовать для прямого извлечения значений?   -  person Joe    schedule 28.10.2016
comment
пожалуйста, скажите мне имя библиотеки, которая используется для этого.   -  person web    schedule 28.10.2016
comment
возможный дубликат stackoverflow.com/ вопросы/14890655/   -  person Navoneel Talukdar    schedule 28.10.2016
comment
Вы можете использовать Expat для анализа XML и получения нужных значений.   -  person Gustavo Straube    schedule 28.10.2016


Ответы (1)


Существует множество различных способов сделать это.

Вы можете использовать DOMParser, вы можете узнать об этом на w3schools и mdn.

Вы можете использовать библиотеку, например JQuery или xml2json или любой из многих пакеты npm по этому поводу.

Сделай сам, вот блог об этом.

person Michael Warner    schedule 28.10.2016