如何使用JavaScript document.write与XML的childNodes对话?

时间:2011-08-17 17:51:25

标签: javascript xml

我正在使用JavaScript在HTML文件中显示XML文档。到目前为止,所有内容都显示良好,但我想显示<date>

的第二级XML标记

我的XML代码段如下所示:

<date>
    <dow>Monday</dow>
    <month>08</month>
    <day>10</day>
    <year>2011</year>
</date>

要显示第一级标签,我一直在编写以下文件:

document.write(x[i].getElementsByTagName("date")[0].childNodes[0].nodeValue);

然而,这不会显示<date>。我需要定位childNodes <dow><month><day><year>。我可以调整当前的document.write来实现这一目标吗?我对如何指导这个问题感到有些困惑,因为当第一级元素显示得很好时我不想重写我的整个代码。

非常感谢任何帮助。提前感谢您的时间。

3 个答案:

答案 0 :(得分:2)

您可以在任何DOMElement上使用getElementsByTagName

var date = xml.getElementsByTagName("date")[0];
var dow = date.getElementsByTagName("dow")[0].childNodes[0].nodeValue;
console.log(dow);

最理想的是,您还应该在使用foo[0]访问节点之前检查节点是否存在。

http://jsfiddle.net/RT4Qr/

答案 1 :(得分:0)

http://jsfiddle.net/efortis/vZAmS/

var xml = "<date><dow>Monday</dow><month>08</month><day>10</day><year>2011</year></date>",
    xmlDoc = $.parseXML( xml ),
    $xml = $( xmlDoc ),
    $dow = $xml.find( "dow" );

document.write( $dow.text() );

以下是文档http://api.jquery.com/jQuery.parseXML/

答案 2 :(得分:0)

谢谢大家的帮助。我最终得到了儿童标签阅读。我实际上能够使用我用于父标签的相同代码;但是,这个document.write的放置让我头疼。我不得不重新格式化我的代码顺序。我把我原来的代码放在了页面上不合适的位置,是一个没脑子的错误。我在这里通过我的愚蠢错误学到了很多东西,我不会再那样做了。大声笑。这些也是很好的选择,所以我感谢你的帮助。我也会研究这些。