使用javascript从XML文件获取测验应用程序的属性

使用javascript从XML文件获取测验应用程序的属性,javascript,xml,xml-parsing,getelementsbytagname,getattribute,Javascript,Xml,Xml Parsing,Getelementsbytagname,Getattribute,我正在构建一个测验应用程序,并将问题和答案保存在XML文件中。我已经知道如何从XML文件中解析单个问题或答案。现在我想检查XML文件中的一些属性。在我的项目中,我想检查“类型”,看看我有什么样的问题。并且应该检查答案的“correct=”true“,以找到正确的答案 我尝试使用“getAttribute(“type”)或“getElementsByTagName(“item”)创建一些东西,但它不起作用 Javascript测试部分如下所示: const path = require('path

我正在构建一个测验应用程序,并将问题和答案保存在XML文件中。我已经知道如何从XML文件中解析单个问题或答案。现在我想检查XML文件中的一些属性。在我的项目中,我想检查“类型”,看看我有什么样的问题。并且应该检查答案的“correct=”true“,以找到正确的答案

我尝试使用“getAttribute(“type”)或“getElementsByTagName(“item”)创建一些东西,但它不起作用

Javascript测试部分如下所示:

const path = require('path');
const fs = require('fs');
const xml2js = require('xml2js');
const util = require('util');
var parseString = require('xml2js').parseString;

var parser = new xml2js.Parser({
    normalize: true, 
    trim: true,
    ignoreAttrs: true
});

var xml = fs.readFileSync('myFile.xml', 'utf8');

parser.parseString(xml, function (err, result) {
    var obj = result.itemBox.items[0].item[0].answers[0].answer[0];
    console.log(JSON.stringify(obj));
    var explanation = result.itemBox.items[0].item[0].explanation[0].div[0].div[0].div[0]; 
    console.log(JSON.stringify(explanation));
});
<itemBox>
  <name></name>
  <author></author>
  <description><div><p></p></div></description>
  <items>
    <item id="1" type="MultipleChoice">
      <name></name>
      <question><div>
        <div>Question?</div>
      </div></question>
      <answers>
        <answer number="0">
            Answer1
        </answer>
        <answer number="1">
            Answer2
        </answer>
        <answer number="2">
            Answer3
        </answer>
        <answer correct="true" number="3">
            Answer4
        </answer>
      </answers>
      <explanation><div>
        <div>
          <div>
            ...
          </div>
        </div>
      </div></explanation>
    </item>
    </items>
</itemBox>
每个问题部分(问题、4个答案和一个解释)我都有一个项目(带“id”) XML如下所示:

const path = require('path');
const fs = require('fs');
const xml2js = require('xml2js');
const util = require('util');
var parseString = require('xml2js').parseString;

var parser = new xml2js.Parser({
    normalize: true, 
    trim: true,
    ignoreAttrs: true
});

var xml = fs.readFileSync('myFile.xml', 'utf8');

parser.parseString(xml, function (err, result) {
    var obj = result.itemBox.items[0].item[0].answers[0].answer[0];
    console.log(JSON.stringify(obj));
    var explanation = result.itemBox.items[0].item[0].explanation[0].div[0].div[0].div[0]; 
    console.log(JSON.stringify(explanation));
});
<itemBox>
  <name></name>
  <author></author>
  <description><div><p></p></div></description>
  <items>
    <item id="1" type="MultipleChoice">
      <name></name>
      <question><div>
        <div>Question?</div>
      </div></question>
      <answers>
        <answer number="0">
            Answer1
        </answer>
        <answer number="1">
            Answer2
        </answer>
        <answer number="2">
            Answer3
        </answer>
        <answer correct="true" number="3">
            Answer4
        </answer>
      </answers>
      <explanation><div>
        <div>
          <div>
            ...
          </div>
        </div>
      </div></explanation>
    </item>
    </items>
</itemBox>

问题? 答复1 答复2 答复3 答复4 ...