如何根据javascript中的标记值筛选出.responseXML

如何根据javascript中的标记值筛选出.responseXML,javascript,jquery,xml,Javascript,Jquery,Xml,因此,我有一个XML文件,我正在使用javascript解析该文件,并使用XMLHttpRequest将其转换为HTML。我要做的是过滤掉link标记中包含字符串English的元素,并保存到另一个数组中。这样,我就可以添加一个limit参数并循环新数组来控制页面上填充了多少元素。我对编码相当陌生,不确定如何将responseXML过滤器放入另一个数组,或者这是否是最好的方法。基本XML文件结构和我的代码如下: <channel> <item> <tit

因此,我有一个XML文件,我正在使用javascript解析该文件,并使用XMLHttpRequest将其转换为HTML。我要做的是过滤掉link标记中包含字符串English的元素,并保存到另一个数组中。这样,我就可以添加一个limit参数并循环新数组来控制页面上填充了多少元素。我对编码相当陌生,不确定如何将responseXML过滤器放入另一个数组,或者这是否是最好的方法。基本XML文件结构和我的代码如下:

<channel>
<item>
      <title>Test Title</title>
      <link>https://www.test.com/English/rest-of-link</link>
      <description>This is a dummy despcription</description>
      <pubDate>Wed, 31 May 2017 17:52:51 GMT</pubDate>
</item>
<item>
      <title>Test Title2</title>
      <link>https://www.test.com/Spanish/rest-of-link</link>
      <description>This is another dummy despcription</description>
      <pubDate>Wed, 31 May 2017 17:52:51 GMT</pubDate>
</item>
</channel>



var myitems;
var xhttp = new XMLHttpRequest();

xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        printHtml(this, limit);          
    }              
};
xhttp.open("GET", "rss.xml", true);
xhttp.send(); 


 function printHtml(xml) {


var xmlDoc = xml.responseXML;
myitems = xmlDoc.getElementsByTagName('item');

/*********/
filter out items with the string English in the url into another array
/*********/

i = 0;
for(i=0;i<myitems.length;++i) {
    var mylink = myitems[i].getElementsByTagName('link')[0].childNodes[0].nodeValue;

        var html = '<a href="'+ mylink +'"><div class="home-entry-header"></a></div>';

        $(".full-list").append(html); 

}

}

考试题目
https://www.test.com/English/rest-of-link
这是一次虚假的掠夺
2017年5月31日星期三17:52:51 GMT
测试标题2
https://www.test.com/Spanish/rest-of-link
这是另一次虚假的掠夺
2017年5月31日星期三17:52:51 GMT
var-myitems;
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
printHtml(此,限制);
}              
};
open(“GET”,“rss.xml”,true);
xhttp.send();
函数printHtml(xml){
var xmlDoc=xml.responseXML;
myitems=xmlDoc.getElementsByTagName('item');
/*********/
将url中带有字符串English的项目过滤到另一个数组中
/*********/
i=0;

对于(i=0;iso)您希望只解析单词English或整个文档的链接标记?并且您希望一个[English,English English]数组?我希望遍历整个xml文档并存储每个具有“English”的完整项在数组中的link标记中。我将在页面上显示title、description和pubDate标记。我只在代码中包含link标记以简化它。因此,我猜它将在新数组中存储对象,以便我可以获取title、description、link和pubDate以形成html。您可以提供您获得的输入吗g从您的请求和您想要的对象数组等结构形式的输出中,我将更好地了解解决问题所需的过滤器类型。我不是100%了解请求是如何工作的,但这一行“myitems=xmlDoc.getElementsByTagName('item');”创建了一个如下所示的对象数组[item,item,item,item,item],然后这一行“myitems[i].getElementsByTagName('link')[0].childNodes[0].nodeValue;”从链接节点获取文本。因此,我猜这将是在原始对象数组[item,item,item,item,item,item,item]中进行搜索,查看哪个对象具有“English”在链接节点中,并将其放入相同结构的新数组中。我想知道这是否可行,或者是否有更好的方法?
for(I=0;I)