Проблема парсинга XML - PullRequest
0 голосов
/ 26 марта 2010

У меня странная проблема с анализом XML.

У меня есть эта строка XML, которую я пытаюсь проанализировать

<?xml version="1.0"?>
<response status="success">
<lot>32342</lot>
</response>

Я использую XPath с Java для этого. Я использую выражение Xpath "/ response / @ status", чтобы найти текст "success". Однако всякий раз, когда я оцениваю это выражение, я получаю пустую строку.

Однако я могу успешно разобрать эту строку, используя "/ response / @ type"

<?xml version="1.0"?>
<response type="success">
<lot>32342</lot>
</response>

Так почему бы просто изменить имя атрибута, чтобы изменить возвращаемую строку на ничто?

is = new InputSource(new StringReader(testWOcreateStrGood)); 
xPathexpressionSuccess = xPath.compile("/response/@status");
responseStr = xPathexpressionSuccess.evaluate(is);

reponseStr - строка, которую я разместил ранее с атрибутом "status"

Также я объявил testWOcreateStrGood как показано ниже

    private String testWOcreateStrGood = "<?xml version=\"1.0\"?>\n" +
                            "<response status=\"success\">\n" +
                            "<lot>32342</lot>\n" +
                            "</response>";

1 Ответ

1 голос
/ 26 марта 2010

Так почему бы просто изменить имя атрибута, чтобы изменить возвращаемую строку на ничто?

Так не должно быть. Вы должны делать что-то еще неправильно, например доступ к неправильному XML-документу или фактически не с использованием выражения XPath, которое вы используете.


К вашему примеру с кодом:

Проверьте документацию API для InputSource. Вы не можете передать XML-документ в виде строки непосредственно в конструктор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...