我需要轉換所有字符|在所有文本中標記大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