我们有一个庞大的数据库,用户可以在其中创建自定义字段。名称中允许使用每个UTF-8字符。直到几周前,当他们以XML格式导出数据时,只有用户在表中拥有的无效字符才是斜杠/
和空格字符,我们用下划线代替了它们。
[现在,我看到一些需要XML导出的用户正在使用他们的字段名称*
,!
...。休息。
用于定义标签名称的部分代码:
valid_name
有效XML的示例:
invalid*name!
我不需要用户在其元素名称$doc = new DOMDocument();
$elementName = is_numeric($key) ? (string)$name : (string)$key;
$elementName = str_replace(array('/', ' '), '_', trim($elementName));
$node = $doc->createElement($elementName); // here I get error "invalid character name"
,<?xml version="1.0"?>
<rows total="621" page="1">
<row>
<valid_name>60E49542D19D16EDB633A40</valid_name>
....
中看到...我需要知道什么是不允许在元素名称中使用的字符,我可能会替换为一个下划线,如果您有更好的主张,而不是用下划线代替它们,我也可以接受。
我将使用!
来解码名称。作为字段名称,输出应该可以,并且您可以根据需要进行编码。用下划线代替将无法实现相反的方式。