我正在使用Javascript生成KML文档,我正在尝试使用XMLSerializer来生成XML文件,但即使我在DOM中以大写形式创建标记,它也会生成所有小写标记。
是用于破坏大小写还是XMLSerializer的DOM?有没有办法解决它或我错过了什么?我在Chrome和Firefox上都试过这个。
KML文档将导入Google地球,似乎不接受小写标记。
答案 0 :(得分:1)
以下在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>
答案 1 :(得分:1)
根据FF4中的测试,以下内容将起作用:
使用document.createElementNS ("http://www.opengis.net/kml/2.2", elementName)
代替document.createElement(elementName)
。
使用elt.appendChild (document.createTextNode (text))
代替elt.innerHTML = text
。
答案 2 :(得分:0)
如果添加大写字母的元素无关紧要,DOM会以小写形式管理它们。只需用firebug检查它,就不会看到大写标签。
如果您的doctype设置为XHTML,它甚至会违反标准合规性。
XHTML中的属性和元素必须全部为小写
更新:刚检查过以下内容:
var test = document.createElement("DIV");
// test.outerHTML returns "<div></div>"
因此,在创建元素时,它已被解析并转换为小写。