gpt4 book ai didi

PHP解析xml xpath

转载 作者:行者123 更新时间:2023-11-29 05:40:51 26 4
gpt4 key购买 nike

XML

<person>
<description>
<p>blah blah blah</p>
<p>kjdsfksdjf</p>
</description>
</person>
<person>
<description>
k kjsdf kk sak kfsdjk sadk
</description>
</person>

我想解析描述,以便它返回里面的 html 标签。

这两个我都试过了,都没有成功

$description = ereg_replace('<description>|</description>','',$person->description->asXML());

$description = $person->description;

有什么建议吗?

编辑

我想要完成的是将 xml 文件导入 mysql 数据库。一切正常,接受上面提到的……描述中的段落标签没有显示……它们需要在那里。 mysql 字段“描述”设置为文本字段。如果我要解析 xml 以在浏览器中输出,那么 $description = ereg_replace('<description>|</description>','',$person->description->asXML());工作正常...虽然当我尝试导入 mysql 时,情况并非如此。我需要在 mysql INSERT 中添加一些东西吗? mysql_query("UPDATE table SET description = '$value' WHERE id = '$id'");

最佳答案

请熟悉 SimpleXml API:

$xml = <<< XML
<person>
<description>
<p>blah blah blah</p>
<p>kjdsfksdjf</p>
</description>
</person>
XML;

$person = simplexml_load_string($xml);
foreach ($person->description->children() as $child) {
echo $child->asXml();
}

给予

<p>blah blah blah</p><p>kjdsfksdjf</p>

请注意,SimpleXml 无法对您显示的第二个描述元素执行相同的操作,因为它没有文本节点的概念,例如

$xml = <<< XML
<person>
<description>
k kjsdf kk sak kfsdjk sadk
</description>
</person>
XML;
$person = simplexml_load_string($xml);
foreach ($person->description->children() as $child) {
echo $child->asXml();
}

将返回一个空字符串。如果你想要一个统一的 API,使用 DOM:

$xml = <<< XML
<people>
<person>
<description>
<p>blah blah blah</p>
<p>kjdsfksdjf</p>
</description>
</person>
<person>
<description>
k kjsdf kk sak kfsdjk sadk
</description>
</person>
</people>
XML;

$dom = new DOMDocument;
$dom->loadXml($xml);
$xp = new DOMXPath($dom);
foreach ($xp->query('/people/person/description/node()') as $child) {
echo $dom->saveXml($child);
}

会给予

        <p>blah blah blah</p>
<p>kjdsfksdjf</p>

k kjsdf kk sak kfsdjk sadk

要将 XML 导入 MySql,您还可以使用 http://dev.mysql.com/doc/refman/5.5/en/load-xml.html

关于PHP解析xml xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6932706/

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