我想用PHP獲取SVG標記內容。如何用PHP獲取SVG標記內容
test.svg:
<?xml version="1.0" encoding="utf-8"?>
<!-- comment -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="202.5px" height="226.084px" viewBox="0 0 202.5 226.084" enable-background="new 0 0 202.5 226.084" xml:space="preserve">
<g>
<path d="M0,13.628c47.7940,13.628z"/>
<polygon points="108.48,207.874 145.506,196.948 145.506,204.536 108.48,214.854 "/>
<path fill="none" stroke="#000000" d="M114.55,223.959"/>
</g>
<g>
<path fill="none" stroke="#000000" d="M114.55,223.959"/>
</g>
<anythingElse>
<path fill="none" stroke="#000000" d="M114.55,223.959"/>
<anythingElse>
</svg>
PHP:現在
$svg = new SimpleXMLElement(file_get_contents('test.svg') );
$svg->registerXPathNamespace('svg', 'http://www.w3.org/2000/svg');
$svg->registerXPathNamespace('xlink', 'http://www.w3.org/1999/xlink');
,我想獲得的SVG標籤內容爲字符串。
期望的結果(例如硬編碼):
$content = '<g>
<path d="M0,13.628c47.7940,13.628z"/>
<polygon points="108.48,207.874 145.506,196.948 145.506,204.536 108.48,214.854 "/>
<path fill="none" stroke="#000000" d="M114.55,223.959"/>
</g>
<g>
<path fill="none" stroke="#000000" d="M114.55,223.959"/>
</g>
<anythingElse>
<path fill="none" stroke="#000000" d="M114.55,223.959"/>
<anythingElse> ';
//編輯:
我不想看對於G標籤: '/ SVG:SVG/SVG:G'。 由於不能保證svg內部會有g標籤。可能會有更多的一個g標籤或其他標籤。
我想獲取開啓和關閉svg標籤之間的所有內容。
如何這是一個重複? – user2015338 2013-04-26 12:57:08
只需尋找「simplexml get children」,你應該找到代碼片段,教程和什麼不是。下次讓你的編程問題更加清晰,你可能會遇到更多的表達問題,而不是編程問題。以防萬一,加入到PHP聊天中。 – hakre 2013-04-26 13:17:13