В samplexml.svg существует узел
<image width="744" height="1052" xlink:href="image1.png"/>
Я должен заменить "image1.png" другим значением как "image2.png". Ведите меня с примером кода как к к этому.
Я мог получить значение атрибута "image1.png". Вот код:
$xdoc = new DomDocument;
$xdoc->Load('samplexml.svg');
$tagName = $xdoc->getElementsByTagName('image')->item(0);
$attribNode = $tagName->getAttributeNode('xlink:href');
echo "Attribute Name : " . $attribNode->name . "<br/>";
echo "Attribute Value : " . $attribNode->value;
Вот samplexml.svg:
<svg>
<g>
<title>Test title</title>
<image x="0" y="0" width="744" height="1052" xlink:href="image1.png"/>
</g>
</svg>
Как я программно изменяю значение xlink:href?
Используйте DOMElement::setAttributeNS():
$xdoc = new DomDocument;
$xdoc->Load('svg.xml');
$tagName = $xdoc->getElementsByTagName('image')->item(0);
$attribNode = $tagName->getAttributeNode('xlink:href');
echo "Attribute Name : " . $attribNode->name . "<br/>";
echo "Attribute Value : " . $attribNode->value;
$tagName->setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', 'image2.png');
echo $xdoc->saveXML();
Один из способов - загрузить файл в виде строки, а затем выполнить поиск и заменить в нем. Затем вы можете использовать loadXML http://www.php.net/manual/en/domdocument.loadxml.php и указать измененную строку в качестве параметра.