2017-08-15 60 views
0

我想将SVG图像元素翻译成它的xml文本行。换句话说,如果在(0,0)处有一个正方形,我想在SVG文本文件中找到它是相应的xml行。翻译/地图SVG图像元素为DOM/XML

现在,我知道我可以搜索svg xml文件来查找这些坐标并找到它。但难度是转换和剪辑。这些可能意味着一个元素的位置可能在svg xml和real svg图像中不同。

总之,我想要做的就是类似于web-inspector(safari)的功能。但我想自己实现它。我发现了几个关于如何编写dom检查员的链接。但是要求SVG在每个元素中都有onmouseclick或onmousehover函数。 我想要做的是,编写一个程序,可以采取任何随机svg,其中一旦选择一个元素,我可以得到其相应的xml行。

我希望有人能指导我如何去做这件事。

+0

从什么标记xml线?你最初写的那个?它不再存在于页面中。你现在可以从序列化整个文档中获得一个吗?你只能通过序列化svg节点在这个时间? – Kaiido

+0

我指的是SVG图像本身的XML行。我希望获得SVG元素的相关XML行,当我在SVG图像本身中选择SVG元素时。与Safari浏览器中发生的情况类似。在svg图像中单击多边形时,它会从svgs'xml中为您找到。 – user3902003

+1

调用document.elementFromPoint,然后使用XMLSerializer序列化您从中获得的元素 –

回答

0

谢谢Robert Longson。我从你的帮助中得到了答案。

我按照他的建议使用了'elementFromPoint()'函数。假设程序已经知道它想检查哪个坐标(100,60);通过调用elemenfrompoint()在window.onload()我得到的答案如下。

window.onload = function(){ 
    cord_element = document.elementFromPoint(100,60); 
    alert("element is :"+cord_element.id); 
}