无法从XML列表中正确创建链接

时间:2012-04-26 02:32:56

标签: javascript html xml

我尝试使用javascript创建一个包含来自XML文件的链接的HTML表。 html tbale工作正常,但是当涉及到链接创建时,链接似乎只有我的字符串中的第一个单词。如果我执行一个警报(String)命令,我会得到完整的字符串,但是当我尝试创建一个HTML LINK时,它只会添加第一个单词。

示例:

基本链接:http://kat.ph/usearch/ {搜索字段在这里} XML List的字符串输出:“Hello Sir”

实际输出为链接(不含引号):“http://kat.ph/usearch/Hello” 预期输出为链接(不含引号):“http://kat.ph/usearch/Hello Sir”

代码低于

  <script type="text/javascript">
                if (window.XMLHttpRequest)
                {// code for IE7+, Firefox, Chrome, Opera, Safari
                    xmlhttp=new XMLHttpRequest();
                }
                else
                {// code for IE6, IE5
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                xmlhttp.open("GET","playlist.xml",false);
                xmlhttp.send();
                xmlDoc=xmlhttp.responseXML; 

                document.write("<table border='1'>");
                var x=xmlDoc.getElementsByTagName("void");
                for (i=0;i<x.length;i++)
                { 
                    document.write("<tr><td>");
                    document.write(x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue);
                    document.write("</td><td>");
                    //alert(x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue); just testing to see what i get here
                    // document.write("<a href=http://www.kat.ph/usearch/" + x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue + ">"+"KAT.PH"+"</a>");
                    document.write("<a href='" + "http://www.kat.ph/usearch/" + x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue + "'>" + "KAT.PH" + "</a>"); 

                    document.write("</td></tr>");  

                }
                document.write("</table>");
            </script>

1 个答案:

答案 0 :(得分:0)

您无法在URI中添加空格(http://www.w3schools.com/jsref/jsref_encodeuri.asp)。您可以做的是编码:

var term = x[i].getElementsByTagName("string")[0].childNodes[0].nodeValue;
var uri = "http://www.kat.ph/usearch/" + term;

document.write("<a href='" + encodeURI(uri) + "'>" + "KAT.PH" + "</a>");