2014-09-23 69 views
-4

我想导出数据库到XML,我使用的电子邮件地址作为关键的DATAS:@在XML标签名

<?xml version="1.0"?> 
<DS> 
    <[email protected]> 
     <name>remrem</name> 
     <email>[email protected]</email> 
     <datetime>2014-09-23 07:41:57</datetime> 
     <lang>fr</lang> 
    </[email protected]> 
    <[email protected]> 
     <name>remrem</name> 
     <email>[email protected]</email> 
     <datetime>2014-09-23 07:41:57</datetime> 
     <lang>fr</lang> 
    </[email protected]> 
</DS> 

但在阅读此出口,我一直因为在“@”的错误钥匙。 有人有我的解决方案? 转义“@”? 使用另一个键? (保持电子邮件关键是更好的适合我)

仅供参考,我使用PHP(的SimpleXMLElement)

谢谢!

+1

为什么不'测试 ...'这样?顺便说一下,这是不是一个CSV,它的XML – Ghost 2014-09-23 08:04:05

+3

另外这款以csv,但XML – fejese 2014-09-23 08:04:49

+0

呀CSV是逗号分隔值(能如果你愿意,实际上可以用另一个分隔符分隔)。显示你的PHP代码。 – Jonathon 2014-09-23 08:06:01

回答

1

您不应该在XML标记中使用值。正确的方法是:

<?xml version="1.0"?> 
<DS> 
    <userdetails> 
     <name>remrem</name> 
     <email>[email protected]</email> 
     <datetime>2014-09-23 07:41:57</datetime> 
     <lang>fr</lang> 
    </userdetails> 
    <userdetails> 
     <name>remrem</name> 
     <email>[email protected]</email> 
     <datetime>2014-09-23 07:41:57</datetime> 
     <lang>fr</lang> 
    </userdetails> 
</DS> 

只有五个XML特殊字符:&lt;(<),&amp;(&),&gt;(>),&quot;(“),并&apos;(')然而,标签名称是一个以字母或少数标点符号开头并以字母,数字,连字符,下划线,冒号或完全停止符号结尾的令牌,一起称为名称字符,或者更精确:

NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender 
Name ::= (Letter | '_' | ':') (NameChar)* 

它可以得到相当复杂,但为了简单起见,您只需坚持使用HTML和几乎所有使用变量名称的编程语言。

仅使用标签来标识他们拥有的内容的类型。

+0

我可以有多个? – RemRem 2014-09-23 08:13:39

+0

@RemRem是的,你可以有 – Ghost 2014-09-23 08:17:40

+0

好,很好,谢谢! – RemRem 2014-09-23 08:20:26