簡體   English   中英

PHP:如何使用DomElement更改XML的一部分

[英]PHP: How to change part of XML using DomElement

我正在嘗試制作一個使用XPath更改XML部分的函數。 我使用了其他人的帖子:

/*********************************************************************
Function to replace part of an XML
**********************************************************************/
function replacePartofXML($element, $methodName, $methodValue, $xml, $newPartofXML)
{
    $xpathstring = "//" . $element . "[@$methodName = \"$methodValue\"]";
    $xml->xpath($xpathstring);

    //$domToChange = dom_import_simplexml($xml->xpath($xpathstring));
    $domToChange = dom_import_simplexml($xml);
    $domReplace  = dom_import_simplexml($newPartofXML);
    $nodeImport  = $domToChange->ownerDocument->importNode($domReplace, TRUE);
    $domToChange->parentNode->replaceChild($nodeImport, $domToChange);

    return($xml);
}

我想做的是返回附加的XML。 我不能使用dom_import_simplexml($ xml-> node-> node),因為我的XML有很多重復元素(但是它們具有不同的ID,因此我嘗試使用xpath)

注釋行不起作用,因為xpath返回一個數組,而dom_import_simplexml無法導入數組。

感謝您的輸入

如果您認為目標元素是唯一的(可以省略無元素返回的檢查),則可以采用xpath()返回的第一個元素:

$domToChange = dom_import_simplexml($xml->xpath($xpathstring)[0]);

或遍歷xpath()的返回值並一一替換。

暫無
暫無

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

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