Разобрать одну строку XML в HashMap

1

Я создаю приложение для Android, которое общается с веб-сервером и борется со следующим сценарием:

Учитывая ОДНУ строку XML в строке, например:

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

Я хотел бы извлечь значения в HashMap, чтобы:

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

Я уже могу сделать это с полным XML-документом, используя SAX Parser, это жалуется, когда я пытаюсь просто передать ему вышеприведенную строку с помощью MalformedUrlException: протокол не найден

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

Я понимаю, что некоторое регулярное выражение может сделать это, но Id действительно делает это правильно.

Такое же поведение можно найти по адресу http://metacpan.org/pod/XML::Simple#XMLin, который используется веб-сервером.

Может ли кто-нибудь помочь? Спасибо

Теги:

1 ответ

5
Лучший ответ

DocumentBuilder.parse(String) обрабатывает строку как URL-адрес. Попробуйте это вместо этого:

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

(где text содержит XML, конечно).

  • 0
    Фантастика, мне не пришло в голову, что он видит это как URL, несмотря на сообщение ... длинный день. В любом случае спасибо большое: D

Ещё вопросы

Сообщество Overcoder
Наверх
Меню