2010-05-18 48 views
5

Trong samplexml.svg có một nútLàm thế nào để thay đổi giá trị thuộc tính của file svg

<image width="744" height="1052" xlink:href="image1.png"/> 

tôi cần phải thay thế "image1.png" với một giá trị như "image2.png". Xin vui lòng hướng dẫn tôi với mã mẫu làm thế nào để điều đó.

Tôi có thể nhận giá trị thuộc tính "image1.png". Đây là mã:

$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; 

đây là samplexml.svg:

<svg> 
    <g> 
     <title>Test title</title> 
     <image x="0" y="0" width="744" height="1052" xlink:href="image1.png"/> 
    </g> 
</svg> 

Làm thế nào để lập trình thay đổi XLink: giá trị href?

Trả lời

-2

Một cách có thể là tải tệp dưới dạng chuỗi và sau đó thực hiện tìm kiếm và thay thế trên đó. Sau đó, bạn có thể sử dụng loadXML http://www.php.net/manual/en/domdocument.loadxml.php và cung cấp chuỗi đã thay đổi làm tham số.

+3

-1 cho thấy tìm kiếm/thay thế khi anh ta đã sử dụng DOM. –

+0

Bò thánh, vì vậy bạn không thể đề xuất lựa chọn thay thế tốt hơn? Nới lỏng dude. – zaf

+0

Tôi đã để lại [câu trả lời của riêng tôi] (http://stackoverflow.com/questions/2857113/how-to-change-the-attribute-value-of-svg-file/2857206#2857206). Chỉ cần cung cấp cho bạn thông tin phản hồi về downvote. Mỗi khi ai đó gợi ý tìm kiếm/thay thế dữ liệu XML/HTML, Thiên Chúa giết chết một con mèo con. –

13

Sử dụng 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(); 
+0

+1 Đối với tôi, tôi đã học được điều gì đó mới mẻ hôm nay. – zaf

Các vấn đề liên quan