Javascript Jquery不正确的子编号XML解析器
最近,我在使用Jquery用JavaScript编写小型XML解析器时遇到了问题。我用于完成此任务的代码如下:Javascript Jquery不正确的子编号XML解析器,javascript,jquery,Javascript,Jquery,最近,我在使用Jquery用JavaScript编写小型XML解析器时遇到了问题。我用于完成此任务的代码如下: /*Private */ var XMLObject=$.parseXML(dataXml); var $XMLObject=$(XMLObject); var questionNumber=0; // array of XML objects var questionsXML= new Array(); /** Html questions */ /
/*Private */
var XMLObject=$.parseXML(dataXml);
var $XMLObject=$(XMLObject);
var questionNumber=0;
// array of XML objects
var questionsXML= new Array();
/** Html questions */
//array of strings
var questionsHTML= new Array();
/*********************
* Constructor *
*********************/
a=$XMLObject.find("questions");
a.children().each( function () {
console.log( "XML : " + new XMLSerializer().serializeToString(this));
questionsXML[questionNumber]=this;
questionNumber++;
});
this.getXML=function () {
var out = new XMLSerializer().serializeToString(this.XMLObject);
return out;
}
this.getQuestionNumber=function() {
return questionNumber;
}
// This function returns the question sequentially.
this.getQuestion=function() {
}
Test function :
function testXML () {
var xml ="XML see later"
var Obj= new XMLQuestions(xml);
console.log("Question Number: " + Obj.getQuestionNumber());
}
我不明白为什么返回的孩子数是3,而应该是2。正如Jquery文档中所述,子函数应该只检查XML树的第一级
用作测试的XML如下所示:
<questionnaire>
<questions>
<question id="1">
<number></number>
<title>Q1</title>
<answers >
<answer type="TextInput">
<result>ss</result>
<questions>
<title>Hidden</title>
</questions>
</answer>
</answers>
</question>
<question id="2">
<title>Q2</title>
</question>
</questions>
</questionnaire>
Q1
党卫军
隐藏的
问题2
正如你所看到的,问题的孩子数量是两个
我得到的结果如下:
XML : <question id="1"> <number/> <title>Q1</title> <answers> <answer type="TextInput"> <result>ss</result> <questions> <title>Hidden</title> </questions> </answer> </answers> </question> question.js:24
XML : <question id="2"> <title>Q2</title> </question> question.js:24
XML : <title>Hidden</title> question.js:24
Question Number: 3
XML:Q1-ss-Hidden-question.js:24
XML:Q2问题。js:24
XML:Hidden question.js:24
问题编号:3
你能帮我吗 在没有此类属性的情况下,调用
this.XMLObject
是否会导致错误?您正在定义var-XMLObject
,它与this.XMLObject
不同
当实际变量不是属性时调用this.$XMLObject
也会引发异常
另一件事:尝试使用questionsXML.push(this)
,而不必增加变量questionNumber
。要返回计数,请使用返回问题xml.length
除此之外,我认为您的代码应该返回正确的值。或者可能有更多的子节点(内部节点/值)
要测试的XML:
<questionnaire>
<questions>
<question id="1">
<number></number>
<title>Q1</title>
<answers>
<answer type="TextInput">
<result>ss</result>
</answers>
</question>
<question id="2">
<number></number>
<title>Q1</title>
<answers>
<answer type="TextInput">
<result>sSSs</result>
</answers>
</question>
</questions>
</questionnaire>
Q1
党卫军
Q1
sSSs
如果这是您正在使用的实际XML,那么它根本不应该工作。。。标记有点混乱。你能试试我的并给出结果吗?你写自己的解析器的具体原因是什么?已经有很多解析器可用。