将单行XML解析为HashMap

时间:2011-09-02 16:56:05

标签: java android xml

我正在构建一个与Web服务器通信的Android应用程序,并且正在努力解决以下问题:

在字符串中给出一行XML,例如:

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

我想将值提取到HashMap中,以便:

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

我已经可以使用SAX Parser完成一个完整的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

1 个答案:

答案 0 :(得分:5)

DocumentBuilder.parse(String)将字符串视为网址。试试这个:

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

(当然text包含XML)。