複数の子要素が生成されているシステムから生成されたXMLファイルを解析しようとしていますが、同じサブ子要素があるため「一緒に」なっています。
以下に貼り付けた部分的なxmlコードを理解するために...
各レコードは注文番号で識別され、その出荷の情報が含まれ、最後にその注文の個々のアイテムとその仕様が一覧表示されます。
<forward_agent>
<record>
<order>562490</order>
<mfg._del_date>11-19-2008</mfg._del_date>
<forw.agent>263</forw.agent>
<customer>120</customer>
<name>BLUEBERRY AUBURN HILLS</name>
<item>'28.1461.00</item>
<ordered>1.0000</ordered>
<warehouse>001</warehouse>
<desitnation_city_state>AUBURN HILLS MI</desitnation_city_state>
<weight>60.1201</weight>
<size>9.70</size>
</record>
<record>
<order>562490</order>
<mfg._del_date>11-19-2008</mfg._del_date>
<forw.agent>263</forw.agent>
<customer>120</customer>
<name>BLUEBERRY AUBURN HILLS</name>
<item>'545</item>
<ordered>1.0000</ordered>
<warehouse>002</warehouse>
<desitnation_city_state>AUBURN HILLS MI</desitnation_city_state>
<weight>82.0120</weight>
<size>12.86</size>
</record>
<record>
<order> </order>
<mfg._del_date> </mfg._del_date>
<forw.agent> </forw.agent>
<customer> </customer>
<name> </name>
<item>'</item>
<ordered> </ordered>
<warehouse> </warehouse>
<desitnation_city_state>Total Lbs:</desitnation_city_state>
<weight>1658.1342</weight>
<size>199.36</size>
</record>
<record>
<order>562136</order>
<mfg._del_date>11-19-2008</mfg._del_date>
<forw.agent>263</forw.agent>
<customer>133</customer>
<name>BLUEBERRY ALBUQUERQUE</name>
<item>'4635</item>
<ordered>2.0000</ordered>
<warehouse>002</warehouse>
<desitnation_city_state>EL PASO TX</desitnation_city_state>
<weight>23.9863</weight>
<size>4.00</size>
</record>
<record>
<order>562136</order>
<mfg._del_date>11-19-2008</mfg._del_date>
<forw.agent>263</forw.agent>
<customer>133</customer>
<name>BLUEBERRY ALBUQUERQUE</name>
<item>'5590</item>
<ordered>1.0000</ordered>
<warehouse>002</warehouse>
<desitnation_city_state>EL PASO TX</desitnation_city_state>
<weight>0.0000</weight>
<size>0.00</size>
</record>
<record>
<order>562136</order>
<mfg._del_date>11-19-2008</mfg._del_date>
<forw.agent>263</forw.agent>
<customer>133</customer>
<name>BLUEBERRY ALBUQUERQUE</name>
<item>'5591</item>
<ordered>1.0000</ordered>
<warehouse>002</warehouse>
<desitnation_city_state>EL PASO TX</desitnation_city_state>
<weight>436.0082</weight>
<size>96.67</size>
</record>
<record>
<order> </order>
<mfg._del_date> </mfg._del_date>
<forw.agent> </forw.agent>
<customer> </customer>
<name> </name>
<item>'</item>
<ordered> </ordered>
<warehouse> </warehouse>
<desitnation_city_state>Total Lbs:</desitnation_city_state>
<weight>5093.0928</weight>
<size>613.88</size>
</record>
出力を注文番号ごとにグループ化し、次のように表示したいと思います。
Item Ordered Weight Size
1221 1 320.6734 31.36
1601 1 34.0724 11.42
2122 1 86.0023 12.79
5543.SP 1 1075.254 121.23
28.1461.00 1 60.1201 9.7
545 1 82.012 12.86
Total Lbs: 1658.1342 199.36
最終的には、これは、総重量とサイズ、または特定のアイテムに基づいて注文を分類できるようにするためです。
- -編集 - -
現在、入力ボックスが表示されていますが、何も表示されていません。
現在のjsコード
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "b2.xml",
dataType: "xml",
success: function(response) { parseXML(response); }
});
});
var recordList =[];
function parseXML(xml) {
$(xml).find('record').each(function () {
var entry = new Object();
entry.order= $(this).find('order').text();
entry.delDate= $(this).find('mfg._del_date').text();
entry.forw = $(this).find('forw.agent').text();
entry.customer= $(this).find('customer').text();
//
//
recordList.push(entry);
});
send(); // handles xml after parsed
}
function send(){
// for each row of a table
for(var i = 0; i < $("#table tr").size(); i++){
$('#orderNum' + i).val(recordList[i].order);
$('#delDate' + i).val(recordList[i].delDate);
$('#forw' + i).val(recordList[i].forw);
$('#customer' + i).val(recordList[i].customer);
}
}
現在のhtmlコード
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript" src="parser.js"></script>
</head>
<body>
<table>
<tr>
<td>Order #</td>
<td>Delete Date</td>
<td>Forward</td>
<td>Customer</td>
</tr>
<tr>
<td><input id="orderNum0" type="text" /></td>
<td><input id="delDate0" type="text" /></td>
<td><input id="forw0" type="text" /></td>
<td><input id="customer0" type="text" /></td>
</tr>
</table>
</body>
</html>
スクリーンショットは次のとおりです。
http://s16.postimage.org/rd1uahm4j/localhost_ftl_parser_html.png