尝试使用jQuery/javascript从Wikipedia中删除元素列表

尝试使用jQuery/javascript从Wikipedia中删除元素列表,javascript,jquery,html,wikipedia,Javascript,Jquery,Html,Wikipedia,因此,我试图从这样一个页面中获得以下音乐类型列表: 从使用Chrome的inspect元素可以看出,我需要访问元素'elements'标题元素。然后我需要访问这些变量,这样我就可以将它们输入到数据库中,但这部分我可以做到 那么如何获得所有ul->li->title元素呢?我甚至不知道如何连接到wikipedia.org网页,以便开始清理。我对jQuery比较陌生,但到目前为止,我真的很享受它的强大功能 谢谢各位 您可以使用一些XPath来帮助: var snapshot = document.e

因此,我试图从这样一个页面中获得以下音乐类型列表:

从使用Chrome的inspect元素可以看出,我需要访问元素'elements'标题元素。然后我需要访问这些变量,这样我就可以将它们输入到数据库中,但这部分我可以做到

那么如何获得所有ul->li->title元素呢?我甚至不知道如何连接到wikipedia.org网页,以便开始清理。我对jQuery比较陌生,但到目前为止,我真的很享受它的强大功能


谢谢各位

您可以使用一些XPath来帮助:

var snapshot = document.evaluate('//ul/li/a[1]/@title', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
这将创建文档中与XPath查询匹配的所有节点的快照。上面的XPath查询第一个链接元素的title属性,该元素的子元素是的子元素

获取快照后,可以对其进行迭代并获取名称:

for (var i = 0; i < snapshot.snapshotLength; i ++) console.log(snapshot.snapshotItem(i).nodeValue);
并使用XPath查询:

$xp = new DOMXPath($doc);
foreach ($xp->query('//ul/li/a[1]/@title') as $node) {
    echo "$node->nodeValue\n";
}

示例:

嗯,你为什么要用Javascript这样做?这真的是将东西放入数据库的方法吗?我只想得到标题名,然后使用AJAX请求将它们传递给PHP脚本。
$xp = new DOMXPath($doc);
foreach ($xp->query('//ul/li/a[1]/@title') as $node) {
    echo "$node->nodeValue\n";
}
$.ajax({
  url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FList_of_styles_of_music%3A_A-F%22%20and%0A%20%20%20%20%20%20xpath%3D'%2F%2Fdiv%5B%40id%3D%22bodyContent%22%5D%2Ful%2Fli%2Fa'&format=json&diagnostics=true",
  success: function(e){
      $.each(e.query.results.a,function(i,c){
          $('ul').append($('<li />').text(c.title));
      });

  }
});