xml は次のとおりです。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tutorial xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- ************************************** DAY 1 MODULE 1 **************************** -->
<qn day="1" module="1" id="1" qntxt="Day 1 Mod 1 First qn?" ans="Answer 3" desc="The Correct answer is Answer3 because...">
<opt id="Answer 1"></opt>
<opt id="Answer 2"></opt>
<opt id="Answer 3"></opt>
<opt id="Answer 4"></opt>
</qn>
<qn day="1" module="1" id="2" qntxt="Day 1 Mod 1 Second qn?" ans="Answer 22" desc="The Correct answer is Answer1 because...">
<opt id="Answer 21"></opt>
<opt id="Answer 22"></opt>
<opt id="Answer 23"></opt>
<opt id="Answer 24"></opt>
</qn>
<qn day="1" module="1" id="3" qntxt="Day 1 Mod 1 Third qn?" ans="Answer 34" desc="The Correct answer is Answer4 because...">
<opt id="Answer 31"></opt>
<opt id="Answer 32"></opt>
<opt id="Answer 33"></opt>
<opt id="Answer 34"></opt>
</qn>
DayID、ModuleID を解析してデータベースに挿入しています。これはうまくいきます。これに加えて、「Total Number of Questions」を挿入しました。これは、各 qn ノードの下の「opt」子ノードの数です。どうすればこれを入手できますか?
function xmlParser(data) {
dropTable();
createTable();
xml = data;
var dayID, moduleID;
$(xml).find('day').each(function()
{
**alert($(this).children.length);**
dayID = $(this).attr('id');
$(this).find("module").each(function()
{
moduleID = $(this).attr('id');
DayID = dayID;
ModuleID = moduleID;
//CurScore = 0;
//HighScore = 0;
//alert(dayID +'--' + moduleID);
insertRecord(dayID,moduleID,0,0,0);
});
});
}
私が使用する - $(this).children.length; -しかし、それは間違った値を与えます-私は2を取得します-実際の値は4になります.
さらにループしたり、コードを大幅に変更したりせずに、どうすればこれを取得できますか?