gpt4 book ai didi

PHP XML 编码正则表达式

转载 作者:行者123 更新时间:2023-12-04 05:04:35 28 4
gpt4 key购买 nike

我需要找到一种方法对 xml 标签中的值进行 urlencode,但使用 PHP 保持标签完整。
也许可以使用正则表达式检查元素中没有标签的开始标签和结束标签。
或者最好在 > 之间查找数据。和 </没有数据中的任何一个。

<?xml version="1.0"?>
<catalog>
<book>
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications with XML.</description>
</book>
<book>
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world.</description>
</book>
</catalog>

应该变成:
<?xml version="1.0"?>
<catalog>
<book>
<author>Gambardella%2C+Matthew</author>
<title>XML+Developer%27s+Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An+in-depth+look+at+creating+applications+with+XML.</description>
</book>
<book>
<author>Ralls%2C+Kim</author>
<title>Midnight+Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A+former+architect+battles+corporate+zombies%2C+an+evil+sorceress%2C+and+her+own+childhood+to+become+queen+of+the+world.</description>
</book>
</catalog>

编辑
最后我改变了流程,消除了这个问题。

接受答案,因为我可能会为其他人做这个伎俩

最佳答案

这对于 DOMDocument/DOMXPath 来说相当简单。您可以查询所有非空文本节点并使用 urlencoded 文本更新它们。

$dom = new DOMDocument;
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//text()[normalize-space()]') as $textNode) {
$textNode->parentNode->replaceChild($dom->createTextNode(
urlencode($textNode->nodeValue)), $textNode);
}
echo $dom->saveXML();

关于PHP XML 编码正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15693949/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com