簡體   English   中英

如何在Android上編碼XML?

[英]How to encode XML on Android?

我需要將XML文檔編碼為一種格式,該格式將作為字符串(即條帶標記)傳遞給XML解析器。 然后我需要再次解碼它,我需要在Android上執行此操作。 我正在尋找Android API中的庫/類是什么?

謝謝

XmlSerializer可能就是你想要的。 用它來構建“外部”XML文檔; 你可以給它的text(...)方法一個完整的XML字符串,它會為你做轉義。 如果您真的想要構建DOM樹然后將其轉儲到XML,則可以使用setTextContent對DOM API執行相同的操作。 您似乎意識到,當您要求返回文本時,任何XML解析器都將正確解碼實體引用。

如果您真的想編寫自己的XML構建代碼,可以嘗試將Apache commons-lang庫引入到項目中,以獲取它的StringEscapeUtils類 我不知道在基礎Android API中沒有構建真實XML的情況下只會進行實體替換。

例如,試試這個:

XmlSerializer xs = Xml.newSerializer();
StringWriter sw = new StringWriter();
xs.setOutput(sw);
xs.startDocument(null, null);
xs.startTag(null, "foo");
xs.text("<bar>this is some complete XML document you had around before</bar>");
xs.endTag(null, "foo");
xs.endDocument();
Log.v("XMLTest", "Generated XML = " + sw.toString());

我最終使用URLEncoder / URLDecoder,它似乎工作得很好。

String encoded = URLEncoder.encode(xml);

一般的Java XML Parser可行的方法。

如果你必須手動構建它,你可以使用XmlSerializer

編輯:

是一篇關於在an​​droid上使用xml的文章,但它也使用XmlSerializer進行編寫

這個問題是第一個結果之一,當我搜索解決這個問題的解決方案時,我在這里回答

Html.fromHtml(字符串)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM