2012-02-07 27 views
2

我已经在我的网址中设置了一个变量,我在我的下一页,这个变量是我的XML文章的标题。我试图得到这篇文章中剩​​下的内容,错过了失败... xml的布局是。如何使用javascript获取某个标题的内容?

<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我想要做的显示必杀技,并导致+的描述,所以相应的节点的全部内容。

编辑我已经尝试了代码,并似乎只拿到1个回答...即时通讯相当新的,所以我不知道为什么我在支票itterated没有得到更多的答案

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>") 
    } 
} 

泰提前

+0

看到此链接http://stackoverflow.com/questions/9065197/jquery-validation-plugin-using-custom-error-messages-from-xml-file/9065309 – mgraph 2012-02-07 10:55:59

回答

3

这里是一个小的JavaScript功能我用它来创建一个XML DOM文档我可以工作...

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

+0

的问题并不在于我不能阅读内容,我必须得到具体的内容e(在我的例子中,我点击第一页中的日期,并且具有该日期的xml中的所有东西都应该显示在下一个,所以粗略地说在sql中它将是select * from xml where date = 18/05/1987 )问题是我没有在我的服务器上的PHP/SQL,所以我必须使用xml作为一个小dbase – 2012-02-07 11:30:38

+1

@ToonVanDooren:你能提供一个更完整的xml例子吗?说2个标题和一个根集合节点(编辑你的问题) – musefan 2012-02-07 11:33:57

+0

完成...谢谢你告诉我,我应该让我的问题更清楚,我得到了添加,所以有时很难解释我自己和一些人只是-1为什么 – 2012-02-07 11:42:21

相关问题