以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  如何在svg中加入一个节点,这个节点来自另一个svg?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=16150)


--  作者:zhixue_zhang
--  发布时间:3/28/2005 2:41:00 PM

--  如何在svg中加入一个节点,这个节点来自另一个svg?
如题
--  作者:henrybenben
--  发布时间:4/13/2005 10:48:00 PM

--  
不太明白是什么意思!
--  作者:zhufeng
--  发布时间:4/20/2005 1:39:00 PM

--  
我想你的意思是这样吧
请看下面一个例子:
file name:definition_file.svg
----------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http:\\www.w3.org/TR/2000/REC-SVG-20010904/DTD/svg10.dtd">

<svg width="" height="" viewBox="0,0,," xmlns="http://www.w3.org/2000/svg">
<desc> definition_file.svg </desc>

<defs>
  <text id='external_text' stroke='blue' stroke-width='2' fill='blue'
font-size='30' >definition_file</text>
</defs>

<desc>working #external test in the same file of definition</desc>
<use xlink:href='#external_text' transform="translate(20,30)  "  />
</svg>
---------------------------------

file name:use_file.svg
-------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http:\\www.w3.org/TR/2000/REC-SVG-20010904/DTD/svg10.dtd">

<svg x='0' y='0' width="" height="" viewBox="0,0,,"
xmlns="http://www.w3.org/2000/svg">
<desc> use_file.svg </desc>

<defs>
  <text id='internal_text' stroke='red' stroke-width='2' fill='red'
font-size='30' >use_file</text>
</defs>

<desc>#local and #external compared</desc>
<use xlink:href='definition_file.svg#external_text'
transform="translate(20,130)  " />
</svg>
----------------------------------------------------------------------------------------------------
但是要注意,些用法Adobe SVG viewer目前还不支持,但是Apache 的batik SVG viewer可以支持。


--  作者:xyfeng
--  发布时间:4/20/2005 3:35:00 PM

--  
var newText=svgDoc.createTextNode(text1);
var objtxt=svgDoc.getElementById('tipstxt');
if(objtxt.hasChildNodes()==true){
 objtxt.replaceChild(newText,objtxt.getFirstChild());
else{
 objtxt.appendChild(newText);
}

用 replaceChild方法!!!祝你好运


--  作者:_phoenix
--  发布时间:4/21/2005 5:12:00 PM

--  
观摩
--  作者:zhixue_zhang
--  发布时间:4/22/2005 2:38:00 PM

--  
谢谢各位帮忙!正在研究!

--  作者:zzzzzz2
--  发布时间:5/11/2005 1:05:00 PM

--  
关注,MARK
--  作者:woodpecker
--  发布时间:12/1/2005 2:24:00 PM

--  
我也有这个问题啊,用的javascript操作。先cloneNode(true),再appendChild(...)。总报“wrong document”的错误。
4楼的朋友写的只涉及到一个svg文件吧。
想知道  如何在svg中加入一个节点,这个节点来自另一个svg?
请高手指点啦!
--  作者:xmshaonian
--  发布时间:12/14/2005 10:15:00 PM

--  
不知道另一个svg文件是不是一个完整的文件,如果只是用svg语法定义了一个节点的话,可以先用getURL(),获得文件指针,再取它的.data,最后用parseXML()将.data 节点化,就可以添加到你的目标svg DOM树中了
如果是其它的,没有试过

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