将单行XML解析为HashMap

Ric*_*Fox 1 java xml android

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

给定String中的一行XML,例如:

"<test one="1" two="2" />"
Run Code Online (Sandbox Code Playgroud)

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

map.get("one") = "1"
map.get("two") = "2"
Run Code Online (Sandbox Code Playgroud)

我已经可以使用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
Run Code Online (Sandbox Code Playgroud)

我意识到一些正则表达式可以做到这一点,但我真的很喜欢这样做.

可以在http://metacpan.org/pod/XML::Simple#XMLin中找到相同的行为,这是Web服务器使用的内容.

有人可以帮忙吗?感谢:D

Jon*_*eet 5

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

Document doc = builder.parse(new InputSource(new StringReader(text)));
Run Code Online (Sandbox Code Playgroud)

(text当然,其中包含XML).