以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 网友互助 』  (http://bbs.xml.org.cn/list.asp?boardid=76)
----  svg 数据库[求助]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=76&rootid=&id=74622)


--  作者:langxiaodilw@163.com
--  发布时间:5/3/2009 9:08:00 AM

--  svg 数据库[求助]
新手过来问下
怎么根据数据库 动态的生成svg节点 并且挂在已有svg 下面

--  作者:Qr
--  发布时间:5/3/2009 9:52:00 AM

--  
svg实际上就是一个标准的xml,可以通过DOM来操作,如添加、删除、修改节点。至于你想在服务端还是在客户端操作,就看你的需要了。如果是在客户端操作,个人觉得,javascript最容易,不过只能用embed嵌入HTML,如果是object,则不允许javascript操作svg。
--  作者:langxiaodilw@163.com
--  发布时间:5/3/2009 2:07:00 PM

--  
我是用 embed  嵌入的
想在可惜改变已有 节点的 属性

但是添加节点不行

帮我看看为什么  
代码如下
newRect=document.createElementNS('http://www.w3.org/2000/svg', 'rect');
    newRect.setAttribute("x",0);
    newRect.setAttribute("y",0);
    newRect.setAttribute("width",30);
    newRect.setAttribute("height",30);
    newRect.setAttribute("stroke","black");
    newRect.setAttribute("stroke-width","1");
    newRect.setAttribute("fill","white");
    SVGDoc.getElementById("ruler").appendChild(newRect);

还有一种这么写
var xmlstring=ResultData.value;
   var svgViewer=document.getElementById("svg");
   SVGDoc = window.document.getElementById("svg").getSVGDocument();
   alert(SVGDoc.getElementById("rect").getAttribute("stroke"));
   SVGDoc.getElementById("rect").setAttribute("stroke","green")
   SVGDoc.getElementById("ruler").removeChild(SVGDoc.getElementById("rect2"));
    var new_node=parseXML(xmlstring,document.getElementById("svg").getSVGDocument());
    SVGDoc.getElementById("ruler").appendChild(new_node);
    alert(SVGDoc.getElementById("line").getAttribute("stroke"));
都添加不进来 第一种提示类型错误
第二种没有错误提示 但是不显示


--  作者:langxiaodilw@163.com
--  发布时间:5/3/2009 3:18:00 PM

--  
没有人帮忙了 啊
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms