2011-09-02 53 views
1

我建立一個Android應用程序的Web服務器進行通信,並正與以下情形掙扎:解析XML的一行到一個HashMap

鑑於一行中一個XML字符串如:

"<test one="1" two="2" />" 

我想值提取到一個HashMap,因此:

map.get("one") = "1" 
map.get("two") = "2" 

我已經當我嘗試只是給它可以使用SAX解析器一個完整的XML文檔,這個抱怨這樣做上述字符串以MalformedURLException異常:協議沒有找到

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder; 
Document doc = null; 
builder = factory.newDocumentBuilder(); 
doc = builder.parse("<test one="1" two="2" />"); //here 

我悟出了一些正則表達式可以做到這一點,但確實標識寧做正確。

同樣的行爲可以在http://metacpan.org/pod/XML::Simple#XMLin發現這正是Web服務器使用。

任何人都可以幫忙嗎?謝謝:d

回答

5

DocumentBuilder.parse(String)將字符串作爲URL。試試這個:

Document doc = builder.parse(new InputSource(new StringReader(text))); 

(其中text當然包含XML)。

+0

好極了,我沒想到,我認爲這是看到它作爲一個URL,儘管消息......漫長的一天。無論如何感謝一堆:D –