I need to select MarkNameNodes (with MarkObjectType='TEXT') and its LaserFontNodes, InkFontNodes from a xml document. If a LaserFont or InkFont nodes are not found, display '-".
I have this code :
var MarkNameNodes=theRoot.sele
ctNodes("/
/MarkTempl
ate["0"]/M
arkingObje
cts/MarkOb
ject[MarkO
bjectType=
'TEXT']/Ma
rkName");
var LaserFontNodes=theRoot.sel
ectNodes("
//MarkTemp
late["0"]/
MarkingObj
ects/MarkO
bject[Mark
ObjectType
='TEXT']/L
aserFont")
;
var InkFontNodes=theRoot.selec
tNodes("//
MarkTempla
te["0"]/Ma
rkingObjec
ts/MarkObj
ect[MarkOb
jectType='
TEXT']/Ink
Font");
var strMarkObjectTable="<table
border='1' id='MarkObjectGroup'>";
strMarkObjectTable += "<tr><td>MarkName</td><td>
Laser</td>
<td>Ink</t
d></tr>";
for (i=0;i<MarkNameNodes.lengt
h;i++){
if ( MarkNameNodes.item(i) != null ) {
strMarkObjectTable += "<tr><td>"+ MarkNameNodes.item(i).text
+"</td>";
} else {
strMarkObjectTable += "<td>-</td>";
}
if (LaserFontNodes.item(i) != null ) {
strMarkObjectTable += "<tr><td>"+ LaserFontNodes.item(i).tex
t +"</td>";
} else {
strMarkObjectTable += "<td>-</td>";
}
if ( InkFontNodes.item(i) != null ) {
strMarkObjectTable += "<tr><td>"+ InkFontNodes.item(i).text +"</td>";
} else {
strMarkObjectTable += "<td>-</td>";
}
strMarkObjectTable += "</tr>";
}
strMarkObjectTable += "</table><br>";
divMarkObject.innerHTML=st
rMarkObjec
tTable;
it returns me the result of :
MarkName Laser Ink
--------------------------
--------
001 12 12
002 12 9
003 - -
the correct result should be :
MarkName Laser Ink
--------------------------
--------
001 - 12
002 12 9
003 12 -
this is the xml :
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfMarkTemplate>
<MarkTemplate>
<MarkType>MARKTYPE001</Mar
kType>
<ImageId>854</ImageId>
<MarkingObjects>
<MarkObject>
<MarkName>001</MarkName>
<MarkObjectType>TEXT</Mark
ObjectType
>
<InkFont>12</InkFont>
</MarkObject>
<MarkObject>
<MarkName>002</MarkName>
<MarkObjectType>TEXT</Mark
ObjectType
>
<LaserFont>12</LaserFont>
<InkFont>9</LaserFont>
</MarkObject>
<MarkObject>
<MarkName>003</MarkName>
<MarkObjectType>TEXT</Mark
ObjectType
>
<LaserFont>12</LaserFont>
</MarkObject>
<MarkObject>
<MarkName>004</MarkName>
<MarkObjectType>GRAPHIC</M
arkObjectT
ype>
<ObjectText>GRAPHIC001</Ob
jectText>
<InkFont>10</InkFont>
</MarkObject>
</MarkingObjects>
</MarkTemplate>
<MarkTemplate>
......
</MarkTemplate>
</ArrayOfMarkTemplate>
Please advise in what is the right way to code to get the correct result.