使用PHP通过id拉出SVG路径/组

时间:2016-02-03 11:48:13

标签: php xml parsing svg path

因此,尝试使用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文件(这是很多工作,特别是当它们都需要更新时)。

非常感谢任何建议:)

1 个答案:

答案 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