我需要转换所有字符|在所有文本中标记大XML文件的块。也就是说,只要我发现如何使用Closure XML将元素注入字符内容?
<test att="one|two">content | something more | and done</test>
我需要转换到
<test att="one|two">content <bar/> something more <bar/> and done</test>
注意|也可能出现在属性值中,并且在这种情况下,它们必须保持不变。阅读CXML focumentation的SAX概述部分的Transforming幻灯片后,我写了
(defclass preproc (cxml:sax-proxy)())
(defmethod sax:characters ((handler preproc) data)
(call-next-method handler (cl-ppcre:regex-replace "\\|" data "<bar/>")))
但当然,它产生一个字符串(逃脱)没有在最后的XML标签。
WML> (cxml:parse "<test>content | ola</test>"
(make-instance 'preproc
:chained-handler (cxml:make-string-sink)))
<?xml version="1.0" encoding="UTF-8"?>
<test>content <bar/> ola</test>"
任何想法或方向?
这个问题并非是对 “商业可扩展标记语言”,所以我除去[标签:CXML]标签。 – 2014-11-03 15:59:20
cxml是不是“商业可扩展标记语言”的CL包的名称。 – 2014-11-04 14:43:13
是的,我对包装很熟悉;它是我的[CL-RDFXML](https://github.com/tayloj/cl-rdfxml)解析器的依赖项。但是,Stack Overflow上的[tag:cxml]标记根据其标记wiki,用于“商业可扩展标记语言”。如果将鼠标光标悬停在标签上,则会显示说明。 (顺便说一句,我发现这很多与[tag:owl]和[tag:owl-carousel]标签有关。) – 2014-11-04 14:45:52