将XML放入JavaScript数组,然后获取值并写入它们

将XML放入JavaScript数组,然后获取值并写入它们,javascript,html,xml,Javascript,Html,Xml,我已经四处寻找了一段时间,发现了一些和我想要的东西很接近的东西,但不是我想要的 我尝试使用以下XML: <?xml version="1.0"?> <document name="New Document"> <url>http://nsc-component.webs.com/Office/Editor/new-doc.html?docname=New+Document&titletype=Title&fontsize=9&f

我已经四处寻找了一段时间,发现了一些和我想要的东西很接近的东西,但不是我想要的

我尝试使用以下XML:

<?xml version="1.0"?>
<document name="New Document">
    <url>http://nsc-component.webs.com/Office/Editor/new-doc.html?docname=New+Document&titletype=Title&fontsize=9&fontface=Arial&spacing=1.0&text=&wordcount3=0</url>
</document>

http://nsc-component.webs.com/Office/Editor/new-doc.html?docname=New+文档&titletype=Title&fontsize=9&fontface=Arial&spacing=1.0&text=&wordcount3=0
我知道这是无效的,这只是一个例子

并将其放入JavaScript数组中,这样编写:

<a href="URL-TAG-VALUE">NAME ATTRIBUTE HERE</a>

对于每个
标记


有人能帮忙吗?

在使用XML字符串之前,您可能应该先解析它:

if (window.DOMParser) {
    var parser = new DOMParser(),
    xml = parser.parseFromString(your_xml_string_here,"text/xml");
} else { // Internet Explorer
    var xml = new ActiveXObject("Microsoft.XMLDOM");

    xml.async = false;
    xml.loadXML(your_xml_string_here); 
}
然后,您可以像访问HTML一样访问XML的DOM:

var arr = [],
    documents = xml.getElementsByTagName('document');

for (var i = 0; i < documents.length; i++) {
    var anchor = document.createElement('a'),
        url    = documents[i].getElementsByTagName('url')[0];


    anchor.href = url.innerText || url.textContent;
    anchor.innerHTML = documents[i].getAttribute('name');

    arr.push(anchor);
}
var arr=[],
documents=xml.getElementsByTagName('document');
对于(var i=0;i
问题中显示的XML无效,但解析将失败


虽然您的XML无效,而且jQuery不是万能的解决方案,但它确实有一个很好的函数,名为
jQuery.parseXML()
。下面是一个可能的解决方案:

//assign the XML string to a variable
var xmlstring = '<?xml version="1.0"?><document name="New Document"><url>http://stackoverflow.com</url></document>';

//use jQuery's XML parsing function and assign it to a variable
var xmldoc = $.parseXML(xmlstring);

//allow jQuery to handle the elements like HTML
var xml = $(xmldoc);

//find <url> and get its contents
var url = xml.find('url').text();

//find <document> and get its name attribute
var doc = xml.find('document').attr('name');
//将XML字符串分配给变量
var xmlstring='0http://stackoverflow.com';
//使用jQuery的XML解析函数并将其分配给变量
var xmldoc=$.parseXML(xmlstring);
//允许jQuery处理HTML之类的元素
var xml=$(xmldoc);
//查找并获取其内容
var url=xml.find('url').text();
//查找并获取其name属性
var doc=xml.find('document').attr('name');

在本例中,url将返回
http://stackoverflow.com
和doc将返回
新文档

使用jQuery将避免解析XML时出现跨浏览器问题。好的,谢谢你的建议,我会尝试一下,一旦我有时间编辑我的代码,你能在JSFIDLE上举个例子吗?等等?原谅我对jQuery不是很流利。太棒了!但是它会对XML中的每个
标记都有效吗?@brandonjordan-是的,它会,看到这个哇,太棒了!非常感谢!我知道到目前为止我已经提出了很多要求,但我是否可以将其放入一个
,在它之前添加一个
,一些
?如果没有,我至少可以添加一个类,这样我就可以为它设置样式了吗?@brandonjordan-你可以添加任何你想要的东西,并构建任何适合你需要的HTML。还有一个