2
我正在使用jsoup來做一些xml處理。問題是,它正在替換XML實體,即:»
與HTML實體:»
保留XML實體輸出(jSoup)
我該如何保留原始(xml)實體?
Groovy腳本:
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import org.jsoup.nodes.Entities
import org.jsoup.parser.Parser
String HTML_STRING = '''
<html>
<div></div>
<div>Some text »</div>
</html>
'''
Document doc = Jsoup.parse(new ByteArrayInputStream(HTML_STRING.getBytes("UTF-8")), "UTF-8", "", Parser.xmlParser())
doc.outputSettings().charset("UTF-8")
doc.outputSettings().escapeMode(Entities.EscapeMode.base)
println doc.toString()
結果:
<html>
<div></div>
<div>
Some text »
</div>
</html>
如果我使用Entities.EscapeMode.xhtml
結果是:
<html>
<div></div>
<div>
Some text »
</div>
</html>
感謝。
剛纔檢查的API /源和一些討論。看來這在本地是不可能的。我猜你的選擇是手動翻譯或擴展[實體類](https://github.com/jhy/jsoup/blob/master/src/main/java/org/jsoup/nodes/Entities.java)以適合您的需求。 –
是的,我不得不修改以下方法:實體類:字符串轉義(字符串字符串,CharsetEncoder編碼器,EscapeMode escapeMode)。 Tokeniser class:char [] consumeCharacterReference(Character additionalAllowedCharacter,boolean inAttribute) –
您可能希望在[GitHub問題跟蹤器](https://github.com/jhy/jsoup/issues)上爲此創建問題。 –