[英]Javascript XMLSerializer case sensitive
我正在使用Javascript生成一個KML文檔,我正在嘗試使用XMLSerializer來生成XML文件,但即使我在DOM中創建了大寫標簽,它也會生成所有小寫標簽。
是DOM會破壞大小寫還是XMLSerializer? 有沒有辦法解決它或我錯過了什么? 我在Chrome和Firefox上都試過這個。
KML文檔將導入Google地球,似乎不接受小寫標記。
以下在XHTML頁面中為FF 5 beta中的(保留案例)工作:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
<script type="text/javascript">
function test() {
var kml = document.getElementsByTagName("kml").item(0);
window.alert (new XMLSerializer().serializeToString(kml));
}
</script>
</head>
<body onload="test()">
<kml id="kml" xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>KML Samples</name>
<open>1</open>
<description>samples</description>
<Style id="downArrowIcon">
<IconStyle>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pal4/icon28.png</href>
</Icon>
</IconStyle>
</Style>
</Document>
</kml>
</body>
</html>
基於FF4中的測試,以下內容將起作用:
使用document.createElementNS ("http://www.opengis.net/kml/2.2", elementName)
而不是document.createElement(elementName)
。
使用elt.appendChild (document.createTextNode (text))
而不是elt.innerHTML = text
。
如果你用大寫字母添加元素沒關系,DOM總是以小寫形式管理它們。 只需用firebug檢查它,你就不會看到大寫標簽。
如果您的doctype設置為XHTML,它甚至會違反標准合規性。
在XHTML中,屬性和元素必須全部為小寫
更新:剛剛檢查過以下內容:
var test = document.createElement("DIV");
// test.outerHTML returns "<div></div>"
因此,當您創建元素時,它正在被解析並轉換為小寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.