我做了一个xml解析器来解析xml中的一些ID(玩家ID)-
var xml = evt.target.result;
var xmlDoc = $.parseXML(xml),
xml = $(xmlDoc),
playerId = xml.find("player_id").text(),
ids = playerId.match(/.{1,2}/g);
我将所有Player ID都保存在一个字符串中,然后将其按两个字符切成一个数组。
我正在解析的xml是这样的-
<?xml version="1.0" encoding="UTF-8" ?>
<player_info>
<general_info>
<team_name>Manchester United</team_name>
</general_info>
<player_segment>
<player_id>01</player_id>
<player_info>Ryan Giggs</player_info>
</player_segment>
<player_segment>
<player_id>02</player_id>
<player_info>Wayne Rooney</player_info>
</player_segment>
<player_segment>
<player_id>03</player_id>
<player_info>Zlatan Ibrahimovic</player_info>
</player_segment>
<player_segment>
<player_id>04</player_id>
<player_info>David de Gea</player_info>
</player_segment>
</player_info>
我的解析器对此xml正常工作,并在此处提供了实时演示。由于存在大小不同(超过两个字符)的播放器ID的可能性,因此出现了问题。下面是一个示例-
<?xml version="1.0" encoding="UTF-8" ?>
<player_info>
<general_info>
<team_name>Manchester United</team_name>
</general_info>
<player_segment>
<player_id>012</player_id>
<player_info>Ryan Giggs</player_info>
</player_segment>
<player_segment>
<player_id>02</player_id>
<player_info>Wayne Rooney</player_info>
</player_segment>
<player_segment>
<player_id>0/3</player_id>
<player_info>Zlatan Ibrahimovic</player_info>
</player_segment>
<player_segment>
<player_id>04567</player_id>
<player_info>David de Gea</player_info>
</player_segment>
</player_info>
我该如何处理这种情况?
它应该像这样工作。
使用此方法可以找到所有节点:ids = xml.find("player_id")
然后,您可以使用来访问其内容,ids[i].innerHTML
因为HTML也是XML。
function handleFileSelect(evt) {
var file = evt.target.files[0];
if (file) {
var reader = new FileReader();
reader.readAsText(file, "UTF-8");
reader.onload = function(evt) {
var xml = evt.target.result;
var xmlDoc = $.parseXML(xml),
xml = $(xmlDoc),
ids = xml.find("player_id")
for (var i = 0; i < ids.length; i++) {
if (i == 0) {
$("#xml-data").empty().append($("<div>" + ids[i].innerHTML + "</div><br>"));
} else {
$("#xml-data").append($("<div>" + ids[i].innerHTML + "</div><br>"));
}
}
}
}
}
$("#file").change(handleFileSelect);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<title>XML file upload and parsing the title of the file</title>
<h2>Upload xml ...</h2>
<input type="file" id="file" accept=".xml" />
<div id="xml-data" style="color: red;"></div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句