因此,尝试使用PHP操作SVG时遇到了一些复杂的问题。我想使用PHP而不是Javascript,因为它不是我正在研究的互动内容。基本上我所拥有的是一个包含各种元素的地图,这些元素已经为每个国家/地区分配了ID。有些是小组,有些是路径,如下所示:
<svg>
<path ... id="NO" ... />
<path ... id="CA" ... />
...
<g ... id="RU" ...>
<path .../>
<path .../>
<path .../>
</g>
</svg>
基本上我想要做的是给PHP一个这些对象的ID,并剥离其他所有东西。因此,对于那些路径,它只会返回(如果它被给予&#39; CA&#39;):
<path ... id="CA" ... />
或者如果给出了&#39; RU&#39;:
<g ... id="RU">
<path .../>
<path .../>
<path .../>
</g>
这样做的原因是我可以单独使用部分图像而无需创建数百个额外的.svg文件(这是很多工作,特别是当它们都需要更新时)。
非常感谢任何建议:)
答案 0 :(得分:1)
由于svg是一个XML文件,您应该使用DOMDocument
类。文档在这里:
http://php.net/manual/en/class.domdocument.php
$dom = new DOMDocument();
$dom->loadXml($svgFileContent);
$child = $dom->getElementById('id-of-group'); //here you have an corresponding object
$xml = $dom->saveXML($child); //xml will contain xml string