我有以下 XML 部分。我似乎可以回答两个问题:它是有效的 XML 吗? (在“FOO”内有一个值和子节点。问题2(更重要的一个),如何在JavaScript中分别访问“TEXT”值和“BOO”节点?
<FOO>
TEXT
<BOO>
</BOO>
<BOO>
</BOO>
</FOO>
尝试过 .firstChild.nodeValue ,效果很好。 (返回 TEXT 的值)但是,如果 TEXT 为空,则会出现问题。它返回一个 [Object Element](BOO 节点)。所以基本上 - 我想获取 TEXT 文本(如果存在),如果不存在,我想获取 null 或等效值。
最佳答案
是的,这是一个有效的 XML。 这是有效 XML 的一些基本规则:
- XML 文档必须有根元素
- XML 元素必须有结束标记
- XML 标签区分大小写
- XML 元素必须正确嵌套
- XML 属性值必须加引号
拥有此 XML 文档:
<CATALOG>
VERSION_1
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>
您可以使用如下代码在 JavaScript 中访问该文档:
x=xmlDoc.getElementsByTagName("CD");
i=0;
function displayCD()
{
// What you want here --->
textInRootElemnt=xmlDoc.getElementsByTagName("CATALOG")[0].childNodes[0].nodeValue;
artist=(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
title=(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
year=(x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue);
txt="Artist: " + artist + "<br />Title: " + title + "<br />Year: "+ year;
document.getElementById("showCD").innerHTML=txt;
}
其中 xmlDoc 是您加载的文档。
考虑以下非常基本的 tutorial 关于 XML。
关于javascript - XML 节点和文本值。这是正确的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20212400/