gpt4 book ai didi

php - 警告:DOMDocument::loadXML() [function.DOMDocument-loadXML]:实体 'laquo' 未在实体中定义

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:59 28 4
gpt4 key购买 nike

我使用 xml、xsl 截取服务器的响应并提取所需的片段,以根据客户端请求从服务器响应中提取 html 片段。例如,假设 $content 在我们处理它之前有服务器响应。

    $dom = new domDocument();
$dom->loadXML($content);
$xslProgram = <<<xslProgram
<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:output method="html" encoding='UTF-8' indent="yes" />

<xsl:template match="/">
<xsl:copy-of select="$select" />
</xsl:template>

</xsl:stylesheet>
xslProgram;

$domXsl = new domDocument();
$domXsl->loadXML($xslProgram);
$xsl = new XSLTProcessor();
$xsl->importStylesheet($domXsl);

$content = $xsl->transformToXml($dom);

看起来一切正常,但是当它检测到  、«、» 等时,会出现一条消息“Warning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Entity 'laquo' not在实体中定义”

起初我只是用它们的 unicode 等效项 (str_replace) 替换了所有这些元素(  和其他元素),但后来我明白我不能考虑所有这些变体。我该如何解决这个问题?

如果您不理解我,请告诉我,我可以写出更好的解释。

谢谢,艾哈迈德。

最佳答案

HTML 实体未在 XML 中定义,这就是您会收到这些错误的原因。您是否考虑过对输入文档使用 loadHTML() 而不是 loadXML()

$dom = new domDocument();
$dom->loadHTML($content);

http://php.net/manual/en/domdocument.loadhtml.php

关于php - 警告:DOMDocument::loadXML() [function.DOMDocument-loadXML]:实体 'laquo' 未在实体中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5361581/

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