如何在 XML 中获取 "xx:creator" 值?
How do I get "xx:creator" value in XML?
我想从 xml 中的每个目标标签名称中获取值,但似乎“getElementsByTagName
”如果包含“[=14=”等特殊字符,则无法找到标签名称]”。有什么解决办法吗?我尝试了“xx\:creator
”和“xx%3Acreator
”,但它们似乎都不起作用。下面是我的一段代码。
promise.then(function (response) {
var parser = new DOMParser();
var xml = parser.parseFromString(response, "text/xml");
// Get all 'item' tag
var items = xml.getElementsByTagName("item");
for (var i = 0; i < items.length; i++) {
title = items[i].getElementsByTagName("title")[0].innerHTML;
link = items[i].getElementsByTagName("link")[0].innerHTML;
pubDate = items[i].getElementsByTagName("pubDate")[0].innerHTML;
creator = items[i].getElementsByTagName("xx:creator")[0].innerHTML;
// Output: undefined
console.log(items[i].getElementsByTagName("xx:creator")[0]);
}
});
您需要使用 getElementsByTagNameNS
,其中包含命名空间参数。您没有显示您的 XML,所以我无法推断出正确的命名空间来准确解决您的问题。
// check the alignment on a number of cells in a table in an XHTML document.
var table = document.getElementById("forecast-table");
var cells = table.getElementsByTagNameNS("http://www.w3.org/1999/xhtml", "td");
for (var i = 0; i < cells.length; i++) {
var axis = cells[i].getAttribute("axis");
if (axis == "year") {
// grab the data
}
}
这是一个可以与上面的代码一起使用的命名空间示例。下面的命名空间定义将前缀 h:
映射到命名空间 http://www.w3.org/1999/xhtml
.
<root>
<h:table xmlns:h="http://www.w3.org/1999/xhtml">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
</root>
我想从 xml 中的每个目标标签名称中获取值,但似乎“getElementsByTagName
”如果包含“[=14=”等特殊字符,则无法找到标签名称]”。有什么解决办法吗?我尝试了“xx\:creator
”和“xx%3Acreator
”,但它们似乎都不起作用。下面是我的一段代码。
promise.then(function (response) {
var parser = new DOMParser();
var xml = parser.parseFromString(response, "text/xml");
// Get all 'item' tag
var items = xml.getElementsByTagName("item");
for (var i = 0; i < items.length; i++) {
title = items[i].getElementsByTagName("title")[0].innerHTML;
link = items[i].getElementsByTagName("link")[0].innerHTML;
pubDate = items[i].getElementsByTagName("pubDate")[0].innerHTML;
creator = items[i].getElementsByTagName("xx:creator")[0].innerHTML;
// Output: undefined
console.log(items[i].getElementsByTagName("xx:creator")[0]);
}
});
您需要使用 getElementsByTagNameNS
,其中包含命名空间参数。您没有显示您的 XML,所以我无法推断出正确的命名空间来准确解决您的问题。
// check the alignment on a number of cells in a table in an XHTML document.
var table = document.getElementById("forecast-table");
var cells = table.getElementsByTagNameNS("http://www.w3.org/1999/xhtml", "td");
for (var i = 0; i < cells.length; i++) {
var axis = cells[i].getAttribute("axis");
if (axis == "year") {
// grab the data
}
}
这是一个可以与上面的代码一起使用的命名空间示例。下面的命名空间定义将前缀 h:
映射到命名空间 http://www.w3.org/1999/xhtml
.
<root>
<h:table xmlns:h="http://www.w3.org/1999/xhtml">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
</root>