我正在构建一个与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
答案 0 :(得分:5)
DocumentBuilder.parse(String)
将字符串视为网址。试试这个:
Document doc = builder.parse(new InputSource(new StringReader(text)));
(当然text
包含XML)。