坦率地说,这似乎应该是一件非常简单的事情,但是我所遇到的一切都不起作用(可能是因为我的经验有限)
问题: 我正在使用JQuery将字符串解析为xml,然后我将结果显示在记分板中。问题是我想将此字符串解析为xml并使用特定标题对数据进行排序。
我必须强调:我无法控制初始变量,我无法编辑它,也无法使用插件。这是一个大学项目,所以我完全可以改变。
要解析和排序的XML数据:
var xmlData = "<Scores>" +
"<Game><Player>Andy Symons</Player><Time>30</Time><Moves>4</Moves></Game>" +
"<Game><Player>Joe Bloggs</Player><Time>35</Time><Moves>4</Moves></Game>" +
"<Game><Player>Jane Bloggs</Player><Time>28</Time><Moves>6</Moves></Game>" +
"<Game><Player>Jane Bloggs</Player><Time>30</Time><Moves>8</Moves></Game>" +
"<Game><Player>Joe Bloggs</Player><Time>55</Time><Moves>6</Moves></Game>" +
"</Scores>";
如果有人有任何想法我如何解析这个字符串,并订购内容(最好尽可能灵活,因为我需要能够从任何标题中订购结果)
很抱歉,如果这没有意义,我会根据需要进行编辑。
提前致谢!
答案 0 :(得分:0)
可以将XML字符串视为具有少许摆弄的HTML节点,然后可以使用jQuery或纯JavaScript查询它们。例如,拿走你拥有的东西,我们可以从XML创建一个dom对象并查询游戏文档片段:
function getVal(game, field) { return game.querySelector(field).childNodes[0] }
var dom = new DOMParser().parseFromString(xmlData, 'text/xml');
var games = dom.querySelectorAll('Game');
console.log(games);
console.log(getVal(games[0], 'Player'));
游戏集合中的项目可以使用getVal函数查询字段,您可以根据需要使用它们。如果您可以使用JSON获取发送给您的数据,或者您可以链接到第三方JavaScript库以将XML转换为JavaScript对象,那么这将使这更容易。