【问题标题】:XML Error with &带有 & 的 XML 错误
【发布时间】:2014-03-21 17:35:34
【问题描述】:

我正在编辑 XML 解析器,但我遇到了问题;该网站有一个 & ,我无法解决它。

我试过了,没用:

$text=preg_replace('/&(?!#?[a-z0-9]+;)/', '&', $text);

这是行:

$dom = DOMDocument::load('https://www.bet-at-home.com/en/feed/sport?sportID=5&username=yyy&password=xxx');

我不知道如何使用 CDATA,这似乎是唯一的解决方案。

这是错误:

Warning: DOMDocument::load() [domdocument.load]: xmlParseEntityRef: no name in https://www.bet-at-home.com/en/feed/sport?sportID=5&username=yyy&password=xxx, line: 21 in /home/public_html/bet/cronload.php on line 13

非常感谢您的帮助!

这是解决方案:

$content = file_get_contents('https://www.bet-at-home.com/en/feed/sport?sportID=1&username=xxx&password=yyy');
$dom = DOMDocument::loadXML($content);

【问题讨论】:

    标签: php xml xml-parsing cdata


    【解决方案1】:

    这只是警告,不是错误。

    你有这个警告,因为你没有使用变量$text,而是输入了干净的文本......试试下面的代码:

    $text = 'https://www.bet-at-home.com/en/feed/sport?sportID=5&username=yyy&password=xxx';
    $text=preg_replace('/&(?!#?[a-z0-9]+;)/', '&', $text);
    $dom = DOMDocument::load($text);
    

    【讨论】:

    • 这是我得到的:解析错误:语法错误,第 15 行 /home/public_html/bet/cronload.php 中的意外 T_VARIABLE
    • @ErepublikGold 抱歉,忘记分号 :-) 请立即尝试
    • 警告:DOMDocument::load() [domdocument.load]: xmlParseEntityRef:bet-at-home.com/en/feed/… 中没有名称,行:21
    • 警告:DOMDocument::load() [domdocument.load]: xmlParseEntityRef:bet-at-home.com/en/feed/… 中没有名称,第 16 行 /home/public_html/bet/cronload.php 中的第 21 行跨度>
    • 是的! if (!@mysqli_set_charset($conn, "utf8")) { printf("加载字符集 utf8 时出错"); }
    猜你喜欢
    • 1970-01-01
    • 2012-07-16
    • 2011-12-22
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多