以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  紧急求助一个SVG的问题!!!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=14627)


--  作者:moonsky731
--  发布时间:2/19/2005 8:02:00 PM

--  紧急求助一个SVG的问题!!!
//test.svg
<svg width="100%" height="100%">

</svg>
//test.xml
<Document xmlns="">
    <Cavans>
   <svg xmlns="http://www.w3.org/2000/svg" width="400px" height="300px">
    <g id="oAll">
     <rect id="oRect" x="50" y="200" width="100" height="100" fill="red" stroke="black" stroke-width="2" />
    </g>
   </svg>
    </Cavans>
    <DataSource/>
</Document>
//test.htm
<html>
 <head>
  <title></title>
 </head>
 <script language="javascript">
var SVGDocument = null;
function loadTemplet()
{
 templeContent = SVGDocument.createElement("XML"); 
 templeContent.async = false;
 templeContent.load("test.xml");
 loadSVG(templeContent);
}
function loadSVG(templeContent)
{
 var SVGContent = templeContent.selectSingleNode(".//g");
 SVGDocument = window.document.getElementById("SVGEmbed").getSVGDocument();
 
 SVGDocument.rootElement.appendChild(SVGContent);
}
 </script>
 
 <body onload="loadTemplet()">
  <div id="layer1">
   <object id="SVGEmbed" data="test.svg" codebase="http://www.adobe.com/svg/viewer/install/"
    width="600" height="450" type="image/svg+xml" VIEWASTEXT>
   </object>
  </div>
 </body>
</html>
//////////////////////////
test.svg是一个空文件,它的实际内容在test.xml里
我想把test.htm当作一容器
将test.xml里的内容在test.htm中转放到<object id="SVGEmbed"/>,显示出图形
但是我构造的document好像不能通过appendChild到指定的SVGDocument上,
请有过此类经验的兄弟帮助我一下


--  作者:SCYANGYU
--  发布时间:2/22/2005 7:47:00 AM

--  
你为什么要搞的这么复杂!
--  作者:yuxi2000
--  发布时间:2/22/2005 12:29:00 PM

--  
8成是为了数据保密
--  作者:edison1024
--  发布时间:2/25/2005 3:11:00 PM

--  
靠。。。。。。
你loadTemplet的时候SVGDocument还是null 的!基本的逻辑错误啊!

把这句放loadTemplet里面
SVGDocument = window.document.getElementById("SVGEmbed").getSVGDocument();


--  作者:SCYANGYU
--  发布时间:2/25/2005 9:58:00 PM

--  
以下是引用edison1024在2005-2-25 15:11:08的发言:
靠。。。。。。
你loadTemplet的时候SVGDocument还是null 的!基本的逻辑错误啊!

把这句放loadTemplet里面
SVGDocument = window.document.getElementById("SVGEmbed").getSVGDocument();


还是不行哦!


--  作者:edison1024
--  发布时间:2/28/2005 9:26:00 AM

--  
晕啊。。。
templeContent.async = false;
templeContent.load("test.xml");
你这两句怎么来的?哪有这个属性和方法啊?你在哪里看的资料有这样写的?
--  作者:edison1024
--  发布时间:2/28/2005 11:59:00 AM

--  

<script language="javascript">
var SVGEmbed = null;
var SVGDocument = null;
var SVGVersion = null;

var templeContent = new ActiveXObject("MSXML2.DOMDocument.3.0");
templeContent.load("test.xml");

function loadTemplet()
{
 try
 {
  SVGEmbed = document.embeds["SVGEmbed"];//或者用 document.getElementById("SVGEmbed");
  SVGVersion = SVGEmbed.getSVGViewerVersion();
  if(!(SVGVersion.indexOf("Adobe") != -1))return;
  SVGDocument = SVGEmbed.getSVGDocument();
  loadSVG(templeContent);
  //SVGEmbed.window.getURL("test.xml",loadSVG2);
 }
 catch(e)
 {
  alert(e.message);
  //window.location.reload();
 }
}
function loadSVG(templeContent)
{
 var SVGContent = templeContent.selectSingleNode("//g");
 //alert(SVGContent.xml);
 var frag = SVGEmbed.window.parseXML(SVGContent.xml,SVGDocument);
 //alert(SVGEmbed.window.printNode(frag));
 SVGDocument.rootElement.appendChild(frag.firstChild);
}
</script>


[此贴子已经被作者于2005-5-17 8:20:49编辑过]

--  作者:edison1024
--  发布时间:2/28/2005 12:13:00 PM

--  
loadSVG2我是这样写的,它是getURL的一个回调
function loadSVG2()
{
 if(templeContent.success)
 {
  //alert(templeContent.content);
  var frag = SVGEmbed.window.parseXML(templeContent.content, SVGDocument);
  //alert(SVGEmbed.window.printNode(frag.childNodes.item(0)));  
  SVGDocument.rootElement.appendChild(frag.firstChild);
 }
}


[此贴子已经被作者于2005-5-17 8:21:17编辑过]

--  作者:edison1024
--  发布时间:2/28/2005 3:50:00 PM

--  
<embed id="SVGEmbed" width="600" height="450" src="test.svg"></embed>

svg的插入要这样写。


--  作者:edison1024
--  发布时间:3/2/2005 8:32:00 AM

--  
嘿嘿
[此贴子已经被作者于2005-5-17 8:22:19编辑过]

--  作者:zhiyu-2000
--  发布时间:3/2/2005 8:46:00 AM

--  
说说你的高见吧!
--  作者:edison1024
--  发布时间:3/2/2005 3:03:00 PM

--  
var xmlDoc = SVGEmbed.window.parseXML(templeContent.content).documentElement;
var frag = SVGEmbed.window.parseXML(SVGEmbed.window.printNode(xmlDoc.getElementsByTagName("rect").item(0)),SVGDocument);
SVGDocument.rootElement.appendChild(frag.firstChild);

如上,应该看得懂吧!其实就是parseXML的使用!

在SVGViewer中,提供的postURL和parseXML函数完全可以取代MSXML了。
我已经实现了用xml交互数据的一个完全基于SVG的提供简单功能的webgis原型,西西!


--  作者:SCYANGYU
--  发布时间:3/5/2005

--  
我看了半天,昏!

终于有点明白了!

谢谢edison1024。


--  作者:fee
--  发布时间:3/22/2005 7:16:00 PM

--  
以下是引用edison1024在2005-3-2 15:03:38的发言:
var xmlDoc = SVGEmbed.window.parseXML(templeContent.content).documentElement;
var frag = SVGEmbed.window.parseXML(SVGEmbed.window.printNode(xmlDoc.getElementsByTagName("rect").item(0)),SVGDocument);
SVGDocument.rootElement.appendChild(frag.firstChild);

如上,应该看得懂吧!其实就是parseXML的使用!

在SVGViewer中,提供的postURL和parseXML函数完全可以取代MSXML了。
我已经实现了用xml交互数据的一个完全基于SVG的提供简单功能的webgis原型,西西!


我是新手,能看看你完整的代码吗?先谢了!!


--  作者:edison1024
--  发布时间:3/24/2005 9:06:00 AM

--  
楼上的,你想得美!呵呵
--  作者:henrybenben
--  发布时间:4/13/2005 10:53:00 PM

--  
难道技术不能分享吗?楼上的可以分享一下吗?
--  作者:edison1024
--  发布时间:4/17/2005 10:31:00 PM

--  
唉。。现在的人真不知道说什么好。

原理都清楚告诉你们了。难道分享的不是技术?

难道还要把我为单位开发的商业代码公布出来?

实在是忍不住了,很想问一句,你有没有脑啊?


--  作者:henrybenben
--  发布时间:4/18/2005 9:57:00 AM

--  
呵呵,难道你一开始就是神童,对刚入门的就不能有点平和的心态?
--  作者:keeponline
--  发布时间:4/18/2005 2:13:00 PM

--  
就是,虽说技术高是好事,可是不乐于助人就不好
--  作者:edison1024
--  发布时间:4/18/2005 4:09:00 PM

--  
原理和代码示范都贴在那了,看不懂么?哦,那就叫不乐于助人啊?。。。。
这么简单的示例都看不懂?难道体系庞大复杂商业源码你反而可以读懂??那可真是希奇了。

个人在单位所做的工作和研究成果是属于单位的,个人在未经过授权情况下没有权利公布。
商业源码是受法律保护的,能随意公布吗?
楼上两位连这么基本的职业操守常识都没有。。。。。


--  作者:edison1024
--  发布时间:4/18/2005 4:12:00 PM

--  
以下是引用keeponline在2005-4-18 14:13:42的发言:
就是,虽说技术高是好事,可是不乐于助人就不好

我看这话怎么那么别扭。。。。。


--  作者:TimothyV
--  发布时间:4/30/2005 2:44:00 PM

--  
呵呵,支持搂主!理应自己有所努力。不能太要求别人阿。
反正自己早晚也要会的。
别有意图的让开!!
--  作者:keeponline
--  发布时间:4/30/2005 3:56:00 PM

--  
什么呀,别人问了,就在那里买弄,哼
--  作者:zzzzzz2
--  发布时间:5/11/2005 12:29:00 PM

--  
谢谢楼主啊!!~~
--  作者:edison1024
--  发布时间:5/17/2005 8:24:00 AM

--  
以下是引用keeponline在2005-4-30 15:56:55的发言:
什么呀,别人问了,就在那里买弄,哼

幼稚。不和你一般见识,哈哈哈


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