java - 将单行 XML 解析为 HashMap

标签 java android xml

我正在构建一个与 Web 服务器通信的 Android 应用程序,并且遇到以下情况:

给定字符串中的一行 XML,例如:

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

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

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

我已经可以使用 SAX 解析器对完整的 XML 文档执行此操作,当我尝试将上面的字符串与 MalformedUrlException 一起提供时,它会提示:未找到协议(protocol)

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

最佳答案

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

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

(当然,text 包含 XML)。

关于java - 将单行 XML 解析为 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7286807/

相关文章:

java - 在 java 中打印多维数组的最佳方法是什么?

android - 如果我更改 Play 商店的类别, 'Similar apps' 部分会发生什么情况?

c# - 从 XML 架构文件 (xsd) 生成 C# 9 类,包括现代功能(可空值 moSTLy)

java - 不是 Vectors java 类的实例

java - Swing MVC - 在已经可见的情况下刷新 JComboBox 的内容

java - Android/Java - 如何从 Web 服务检索图像并显示它

iphone - iPhone 应用程序的 Xml 序列化库

java - Android 首选项屏幕,仅全屏?

java - 无法识别的属性名称 MODULE(com.sun.tools.javac.util.SharedNameTable$NameImpl 类)

java - 如何解决错误: Only the original thread that created a view hierarchy can touch its views