Php 替换DOM中的元素值

Php 替换DOM中的元素值,php,xml,replace,Php,Xml,Replace,我想将DOM标记值保存为exist XML,我找到了replace函数,但它在js中,我需要PHP中的函数 我尝试了save和saveXML函数,但没有成功。我有带冒号“iaiext:auction\u title”的XML标记。我使用了getElement,效果很好,接下来我将标题剪切为50个字符的函数也很好,但是如果我不使用像simple\u load\u file这样的路径,我如何将旧标题替换为新标题呢。如何在我的脚本中显示此路径 $dom = new DOMDocument; $dom

我想将DOM标记值保存为exist XML,我找到了replace函数,但它在js中,我需要PHP中的函数

我尝试了
save
saveXML
函数,但没有成功。我有带冒号“iaiext:auction\u title”的XML标记。我使用了
getElement
,效果很好,接下来我将标题剪切为50个字符的函数也很好,但是如果我不使用像simple\u load\u file这样的路径,我如何将旧标题替换为新标题呢。如何在我的脚本中显示此路径


$dom = new DOMDocument;
$dom->load('p.xml');
$i = 0;
$tytuly = $dom->getElementsByTagName('auction_title');
foreach ($tytuly as $tytul){

    $title = $tytul->nodeValue;
    $end_title = doTitleCut($title);
    //echo "<pre>";
    //echo($end_title);
    //echo "<pre>";
    $i = $i+1;
}

$dom=新的DOMDocument;
$dom->load('p.xml');
$i=0;
$tytuly=$dom->getElementsByTagName('auction_title');
foreach($tytuly作为$tytul){
$title=$tytul->nodeValue;
$end_title=doTitleCut($title);
//回声“;
//echo($end_title);
//回声“;
$i=$i+1;
}

在循环中,您可以使用
nodeValue
以获取特定节点值的相同方式更新该节点值。所以在你的循环中,每次都要更新它

$dom->save("3.xml");
然后在循环之后,您可以使用

$xml = <<<'XML'
<auctions>
  <auction_title>World!</auction_title>
  <auction_title>World &amp; Universe!</auction_title>
</auctions>
XML;

$document = new DOMDocument();
$document->loadXML($xml);

$titleNodes = $document->getElementsByTagName('auction_title');
foreach ($titleNodes as $titleNode) {
    $title = $titleNode->textContent;
    $titleNode->textContent = 'Hello '.$title;
}

echo $document->saveXML();
或者使用

<?xml version="1.0"?> 
<auctions> 
  <auction_title>Hello World!</auction_title> 
  <auction_title>Hello World &amp; Universe!</auction_title> 
</auctions>

在循环中,可以使用与获取特定节点值相同的方法更新特定节点值-使用
nodeValue
。所以在你的循环中,每次都要更新它

$dom->save("3.xml");
然后在循环之后,您可以使用

$xml = <<<'XML'
<auctions>
  <auction_title>World!</auction_title>
  <auction_title>World &amp; Universe!</auction_title>
</auctions>
XML;

$document = new DOMDocument();
$document->loadXML($xml);

$titleNodes = $document->getElementsByTagName('auction_title');
foreach ($titleNodes as $titleNode) {
    $title = $titleNode->textContent;
    $titleNode->textContent = 'Hello '.$title;
}

echo $document->saveXML();
或者使用

<?xml version="1.0"?> 
<auctions> 
  <auction_title>Hello World!</auction_title> 
  <auction_title>Hello World &amp; Universe!</auction_title> 
</auctions>

它与PHP中的基本API相同。但是,浏览器实现了API的更多或其他部分。下面是API的5个版本(DOM级别1到4和DOM LS)。DOM 3添加了一个属性来读/写节点的文本内容:

以下示例为标题的前缀:

$xml=textContent;
$titleNode->textContent='Hello'。$title;
}
echo$document->saveXML();
输出:


你好,世界!
你好,世界&;宇宙!

PHPs
DOMNode::$nodeValue
实现与W3C API定义不匹配。它的行为与读取时的DOMNode::$textContent的行为相同,在写入时不会完全转义。

它与PHP中的基本API相同。但是,浏览器实现了API的更多或其他部分。下面是API的5个版本(DOM级别1到4和DOM LS)。DOM 3添加了一个属性来读/写节点的文本内容:

以下示例为标题的前缀:

$xml=textContent;
$titleNode->textContent='Hello'。$title;
}
echo$document->saveXML();
输出:


你好,世界!
你好,世界&;宇宙!

PHPs
DOMNode::$nodeValue
实现与W3C API定义不匹配。它的行为与读取时的行为相同:$textContent,在写入时不会完全转义。

一个好的、完整的、可验证的问题将提供一个最小的代表性示例输入字符串,然后根据输入字符串和处理逻辑提供准确的预期输出。一个好的、完整的、可验证的问题,可验证问题将提供一个最小的代表性样本输入字符串,然后根据输入字符串和处理逻辑提供准确的预期输出。