javascript - 如何使用javascript获取xml中某个标题的内容?

标签 javascript xml

我在我的下一页中设置了一个变量,这个变量是我的 xml 中一篇文章的标题。我试图获取本文中的其余内容,但惨败...xml 的布局是。

    <title>
      <artist>
      Nirvana
      </artist>
      <description>
      Nirvana in concert
      </description>
      <date>
      18/05/1987
      </date>
   </title>
    <title>
    <artist>
    led zeppelin
    </artist>
    <description>
    led in concert
    </description>
    <date>
    18/05/1987
    </date>
    </title>

当我搜索 18/05/1987 时,我想要显示 nirvana 和 led + 描述,以便显示相应节点的全部内容。

编辑我已经尝试过代码,但似乎只得到 1 个答案...我很新,所以我不明白为什么当检查被迭代时我没有得到更多答案

    xmlDoc=loadXMLDoc("data.xml");
var hash = getUrlVars(); 
var date = hash['date'];
var nodeList = xmlDoc.getElementsByTagName("article");

for (var i = 0; i < nodeList.length; i++) {
    var titleNode = nodeList[i];
    if(titleNode.getElementsByTagName("urltext")[i].nodeValue = date){
        document.write("<div style='width:450px;'>")
        document.write("<p>"+titleNode.getElementsByTagName("title")[i].childNodes[0].nodeValue+"</p>");
        document.write("<p>"+titleNode.getElementsByTagName("description")[i].childNodes[0].nodeValue+"</p>");
        document.write("<p>"+titleNode.getElementsByTagName("urltext")[i].childNodes[0].nodeValue+"</p>");
        document.write("</div>")
    }
}

提前Ty

最佳答案

这是我用来创建可使用的 XML DOM 文档的一个小 JavaScript 函数...

function GetXMLDoc(xml) {
    var xmlDoc;
    if (window.DOMParser) {
        var parser = new DOMParser();
        xmlDoc = parser.parseFromString(xml, "text/xml");
    }
    else // Internet Explorer
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(xml);
    }

    return xmlDoc;
}

然后您可以像这样使用它来获取标题,例如......

var xmlDoc = GetXMLDoc(XML_String_Input);
var title = xmlDoc.getElementsByTagName("title")[0].nodeValue;

编辑:当您似乎想要对 XML 执行搜索时,您可以执行以下操作...

var nodeList = xmlDoc.getElementsByTagName("title");
var resultNodes = [];

for (var i = 0; i < nodeList.length; i++) {
    var titleNode = nodeList[i];
    if(titleNode.getElementsByTagName("artist")[0].nodeValue == "Nirvana"){
        //match found for artist "Nirvana"
        resultNodes.push(titleNode);
    }
}

//here you will now have a list (`resultNodes`) of "title" nodes that matched the search (i.e. artist == "Nirvana")
//there is enough sample code above for you to be able to process each of the seach results and gets the values for the various other properties like "data" for example

See here for more information on XML DOM function and properties

关于javascript - 如何使用javascript获取xml中某个标题的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9174921/

相关文章:

javascript - 使用连接表单上传文件

java - 使用 xalan 扩展在 XSL 中处理 java 集合

javascript - 如何对 $(xml).children() 进行排序?

android - Tab背景点击效果和选中的Tab背景颜色变化

java - 在运行时设置 Allure 结果目录

c# - 读取具有未知根/父节点的 XML 节点时出现问题

JavaScript - 检测 HTML

javascript - HTML5 文件 API - 将文件发送到服务器进行处理

java - 如何在单击按钮时更新 html/jsp 页面的特定部分?

javascript - javascript 如何知道它已到达 __proto__ 查找链的末尾