【问题标题】:DOM Parser- CDATA QueryDOM Parser-CDATA 查询
【发布时间】:2011-05-16 09:20:19
【问题描述】:
$dom = new DOMDocument('1.0');
$Rootelement = $dom->createElement('Domain', 'Root element');
$dom->appendChild($Rootelement);

$extraInfo=$dom->createElement('extrainfo');
$Rootelement->appendChild($extraInfo);

$rootTextNode=$dom->createTextNode("Co > S&S ");
$extraInfo->appendChild($rootTextNode);

header ("Content-Type:text/xml"); 
echo $dom->saveXML();

我正在尝试 DOM 中 CDATA 部分的示例,但被困在这里。我创建了一个 '' xml 节点,其中包含诸如 '>' 、'&' 之类的非法字符,但是当我看到上述代码的输出时,浏览器不会抛出错误,说明使用非法字符或 XML 格式不正确......我记得如果您不将这些字符保留在 CDATA 部分中,则会弹出此错误。

有人可以帮我解决我所缺少的问题吗?就我而言,它应该在浏览器中给我一些错误,但我收到了正确的输出!!!

问候, 普里蒂

【问题讨论】:

    标签: php xml dom xml-parsing


    【解决方案1】:

    您正在以编程方式构建 DOM,然后将其转换为 XML。

    您使用的库要么将文本节点包装在 CDATA 部分中,要么用实体(> 等)表示 XML 中具有特殊含义的字符。两者都是有效且等效的。

    这也是为什么我们使用 XML 库而不是模板来构建 XML 文档。他们会为我们处理所有这些事情,并阻止我们最终得到格式不正确的文档。

    【讨论】:

    • 似乎我发现了一些东西 - 当您使用 CreateTextnode() 时,它会将被视为非法字符的 xml 操作为等效实体,如果它在 CDATA 部分中,那么它将保持原样。在这两种情况下,都不会向用户显示我正在寻找的错误:)。谢谢大卫。
    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2012-06-01
    相关资源
    最近更新 更多