簡體   English   中英

嘗試使用PHP中的動態變量編輯XML文檔

[英]Trying to edit an XML document with a dynamic variable from PHP

我正在嘗試使用PHP編輯XML文檔,但它似乎不起作用,想知道我哪里出錯了!

我試着按照以下方式在網上找到它。 有誰能告訴我正確的方向?

XML

<gold>
    <coin>
        <id>1</id>
        <title>Gold Coin 50 Grams</title>
        <price>500 rupees</price>
        <dimension>20 MM</dimension>
        <thumb_url>http://animsinc.com/Expertise-media.png</thumb_url>
    </coin>
    <coin>
        <id>2</id>
        <title>Gold Coin 50 Grams</title>
        <price>500 rupees</price>
        <dimension>20 MM</dimension>
        <thumb_url>
            http://animsinc.com/Expertise-media.png</thumb_url>
    </coin>
    ...
</gold>

PHP代碼

$xmlDoc = new DOMDocument();
$xmlDoc->loadXml($str);
$events = $xmlDoc->getElementsByTagName("coin");
foreach($events as $event){
    $eventNames = $event->getElementsByTagName("price");
    $eventN = $eventNames->item(0)->nodeValue;
    if('500' == $eventN){ // ** Failed here, instead of '500',
       // I used '500 rupees' and it worked, as that matches the original text.**
        $eventNames->item(0)->nodeValue = $rest ;
    }
}
var_dump($xmlDoc->saveXML());

這是期望的結果。 請注意我如何將價格標簽更改為2495盧比。

 <gold>
    <coin>
        <id>1</id>
        <title>Gold Coin 50 Grams</title>
        <price>2495 rupees</price>
        <dimension>20 MM</dimension>
        <thumb_url>http://animsinc.com/Expertise-media.png</thumb_url>
    </coin>
    <coin>
        <id>2</id>
        <title>Gold Coin 50 Grams</title>
        <price>2495 rupees</price>
        <dimension>20 MM</dimension>
        <thumb_url>
            http://animsinc.com/Expertise-media.png</thumb_url>
    </coin>
    ...
</gold>

這是基於SimpleXML的快速解決方案:

$gold = new SimpleXMLElement($xml);

foreach ($gold->coin as $coin) {
    $coin->price = str_replace('500', $rest, (string) $coin->price);
}

echo $gold->asXML();

工作演示

哦,嘿,這是我的錯誤,功能完美,而不是

     if('500' == $eventN)

正確的事實是

     if('500 rupees' == $eventN)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM