svg中通过parseXML()得到的node怎么用appendChild()加不上去呢?

jige_hanhan 2007-09-12 06:01:54
1-------------------外层svg文件-----------
<?xml version="1.0" encoding="utf-8"?>
<svg id="svg" width="800" height="600" xmlns:xlink="http://www.w3.org/1999/xlink" onload="getContentInFile();">
<script>
<![CDATA[
plat=document.getElementById("plat");

function getContentInFile(){
xmlDoc = getURL('test.svg',fn)
}

function fn(xmlDoc)
{
var x = parseXML(xmlDoc.content)
s=x.getElementsByTagName("svg").item(0);
nodeList=s.childNodes;

for(i=0;i<nodeList.length;i++){
var node=nodeList.item(i);

if(node.nodeType==1){
alert(node);
alert(node.nodeName);
plat.appendChild(node);//here alert"wrong document" error message
}
}
}
]]>

</script>
<g id="plat">
<rect x="0" y="60" width="720" height="450" fill="white" stroke="gray" stroke-width="1"/>
</g>
</svg>
2----------------------------test.svg file-------------------------------
<?xml version="1.0" encoding="utf-8"?>
<svg width="100%" height="100%" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect id="backRect" x="0" y="60" width="720" height="450" fill="white" stroke="gray" stroke-width="1" />
<circle cx="202" cy="312" r="43" stroke="red" stroke-width="1" fill="blue" />
</svg>

如果把plat.appendChild(node);去掉,就一切正常!
我是想把test.svg文件的各个element加到外层svg文件中!也就是提取指定svg文件中的所有node

多谢呀!!!!!!!!!
...全文
495 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jige_hanhan 2007-09-13
  • 打赏
  • 举报
回复
写成./svgFile/test.svg就好了!
再次谢谢net_lover(【孟子E章】)
马上给分
jige_hanhan 2007-09-13
  • 打赏
  • 举报
回复
我想把test.svg写成相对路径怎么写呀?
".\svgFile\test.svg"
".\\svgFile\\test.svg"
都不行呀?
jige_hanhan 2007-09-13
  • 打赏
  • 举报
回复
ok了!
谢谢您!net_lover(【孟子E章】)
最迷惑是帮我的人是net_lover(【孟子E章】) !
我alert(x.firstChild)时,为什么是空白呢?
我在头贴中写的有什么错误呢?
孟子E章 2007-09-13
  • 打赏
  • 举报
回复
参考
http://www.ibm.com/developerworks/cn/xml/x-svgscript/
孟子E章 2007-09-13
  • 打赏
  • 举报
回复
昨天的例子

<?xml version="1.0" encoding="utf-8"?>
<svg id="svg" width="800" height="600" onload="getContentInFile();">
<script>
<![CDATA[
function getContentInFile(){
xmlDoc = getURL('test.svg',fn)
}
function fn(xmlDoc)
{
var x = parseXML(xmlDoc.content,document)
document.getElementById("plat").appendChild(x.firstChild)
}
]]>

</script>
<g id="plat">
<rect x="0" y="60" width="720" height="450" fill="white" stroke="gray" stroke-width="1"/>
</g>
</svg>
jige_hanhan 2007-09-13
  • 打赏
  • 举报
回复
不行!
错误信息一样,
我都纳闷,
同样是Element object为什么append不上去呢?
hejunbin 2007-09-13
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?>
<svg id="svg" width="800" height="600" xmlns:xlink="http://www.w3.org/1999/xlink" onload="getContentInFile();">
<g id="plat">
<rect x="0" y="60" width="720" height="450" fill="white" stroke="gray" stroke-width="1"/>
</g>
<script>
<![CDATA[
plat=document.getElementById("plat");

function getContentInFile(){
xmlDoc = getURL('test.svg',fn)
}

function fn(xmlDoc)
{
var x = parseXML(xmlDoc.content)
s=x.getElementsByTagName("svg").item(0);
nodeList=s.childNodes;

for(i=0;i<nodeList.length;i++){
var node=nodeList.item(i);

if(node.nodeType==1){
alert(node);
alert(node.nodeName);
plat.appendChild(node);//here alert"wrong document" error message
}
}
}
]]>

</script>
</svg>

tryO.o

8,909

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧