示例:
<svg width="23" height="22" xmlns="http://www.w3.org/2000/svg">
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
<g>
<title>Layer 1</title>
<path fill-opacity="0" id="svg_1" d="m23,2-20,9.5l22,9" stroke-width="4" stroke="#000000" fill="#ffffff" />
</g>
</svg>
我想提取svg文件的宽度和高度,以便我可以使用canvg进行一些定位。
我知道它是xml,但我无法弄明白。这可能是非常简单的事情,但这是一年中的最后一天,我无法弄明白。
一直在尝试:
PHP SimpleXML
$xml = simplexml_load_file($imageright) or die("Error: Cannot create object");
print_r($xml->getDocNamespaces());echo '</br>';
给我
数组([] =&gt; http://www.w3.org/2000/svg)
这也不起作用:
foreach($xml->svg[0]->attributes() as $a => $b)
{
echo $a,'="',$b,"\"</br>";
}
有什么想法吗?
答案 0 :(得分:4)
你需要的只是
$xml = simplexml_load_file($imageright);
$attr = $xml->attributes();
printf("%s x %s", $attr->width, $attr->height);
输出
23 x 22
答案 1 :(得分:-1)
这是使用awk脚本的简单解决方案。
假定宽度高度始终在第一行。
用"
分隔线作为字段分隔符,然后获得第二和第四字段。
awk -F '\"' 'NR==1{print $2,$4}' input.svg
23 22