【问题标题】:PHP DOM createElement - allow spacesPHP DOM createElement - 允许空格
【发布时间】:2011-04-26 19:30:20
【问题描述】:

创建xml文件时如何在createElement中使用空格

我必须使用

$main = $doc->createElement("$cname"."Data" );

在哪里

$cname="Company Name"

但由于$cname 中的空格,我收到以下错误,

致命错误:未捕获的异常 带有消息“无效”的“DOMException” file.php:50 堆栈中的字符错误 跟踪:#0 文件.php(50): DOMDocument->createElement('geosoft 公司...') #1 {main} 投入 第 50 行的 file.php

如何解决这个问题?

问候, 雷卡

【问题讨论】:

  • 您是否都见过包含 <name morename>... 等元素的 XML 文档? ;) 所以你必须“删除”空间......

标签: php xml dom


【解决方案1】:

根据http://www.w3.org/TR/2008/REC-xml-20081126/#NT-NameChar,元素名称只能包含以下字符

NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]

NameChar ::= NameStartChar | "-" | “。” | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]

可能的替代方案:

$main = $doc->createElement("Data");
$main->setAttribute('origin', $cname);

你可能也对xml namespaces感兴趣

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 2018-10-22
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    相关资源
    最近更新 更多