【发布时间】:2012-10-01 17:31:14
【问题描述】:
我想解析以下 XML-Code:
(cxml:parse "<BEGIN><URL>www.some.de/url?some=data&bad=stuff</URL></BEGIN>" (stp:make-builder))
这会导致
#<CXML:WELL-FORMEDNESS-VIOLATION "~A" {1003C5E163}>
因为 '&' 是一个 XML 特殊字符。但如果我改用&amp;?,结果是:
(cxml:parse "<BEGIN><URL>www.some.de/url?some=data&bad=stuff</URL></BEGIN>" (stp:make-builder))
=>#.(CXML-STP-IMPL::DOCUMENT
:CHILDREN '(#.(CXML-STP:ELEMENT
#| :PARENT of type DOCUMENT |#
:CHILDREN '(#.(CXML-STP:ELEMENT
#| :PARENT of type ELEMENT |#
:CHILDREN '(#.(CXML-STP:TEXT
#| :PARENT of type ELEMENT |#
:DATA "www.some.de/url?some=data")
#.(CXML-STP:TEXT
#| :PARENT of type ELEMENT |#
:DATA "&")
#.(CXML-STP:TEXT
#| :PARENT of type ELEMENT |#
:DATA "bad=stuff"))
:LOCAL-NAME "URL"))
:LOCAL-NAME "BEGIN")))
这与我的预期不完全一样,因为应该只有一个 CXML-STP:TEXT 子节点的 DATA "www.some.de/url?some=data&bad=stuff"
我该如何解决这个错误(?)行为?
【问题讨论】:
标签: common-lisp stp