Найди отличие! - PullRequest
       14

Найди отличие!

0 голосов
/ 10 сентября 2010

Мне нужна быстрая помощь для сложной проблемы, которая буквально сводит меня с ума.

String example = "<digitalObject>" +
                 "<title>title</title>" +
                 "<creator>Name</creator>" +
                 "<location>link</location>"+
                 "<relatedAsset>related realife object</relatedAsset>" +
                 "<note><src lang =\"en\">value</src></note>" +
                 "<archivalDate>date</archivalDate>"+
                 "<mimeFormat>mime type</mimeFormat>"+
                 "<digitalObjectOwner>owner</digitalObjectOwner>"+
                 "</digitalObject>";

String example4="<digitalObject>" + 
                "<title>title</title>"+
                "<creator>name</creator>"+ 
                "<location>link</location>"+
                "<relatedAsset>related realife object</relatedAsset>" + 
                "<note><src lang=\"en\">value</src></note>" + 
                "<archivialDate>date</archivialDate>"+
                "<mimeFormat>mime type</mimeFormat>" + 
                "<digitalObjectOwner>owner</digitalObjectOwner>" + 
                "</digitalObject>";

Следующий код для получения объекта w3c.dom.Document

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
Document doc=null;
try {
builder = factory.newDocumentBuilder();

InputSource is = new InputSource();
is.setCharacterStream(new StringReader(example4));
doc = builder.parse(is);
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ParserConfigurationException e) {
        e.printStackTrace();
    }

    return doc;
}

Первая строка (пример) анализируется правильно, вторая (пример2) возвращает ноль.

Есть идеи, почему? Я действительно не вижу никакой разницы между двумя !!

Заранее спасибо, я уверен, что это что-то настолько глупое, что мне будет стыдно ...

РЕДАКТИРОВАТЬ: на самом деле с тем же содержанием в строке, еще 2 разных результата ... Я постараюсь их различить ...

Ответы [ 6 ]

2 голосов
/ 10 сентября 2010

Вы проверяли наличие невидимых символов? В прошлом я обнаружил, что в xml есть невидимые символы, которые отличаются от того, что я ожидал отправить.

1 голос
/ 10 сентября 2010

Вам не хватает </src> в теге note во втором.

0 голосов
/ 10 сентября 2010

Эй! вы говорите the second one (example2) вы уверены, что анализируете example4? а не то, что называется example2, которое может быть нулевым?

Я проверил ваш код и не получил никаких исключений. Если иначе, я уверен, что вы имеете дело с каким-то узлом, который не существует во втором xml - example4 - например, archivalDate

0 голосов
/ 10 сентября 2010

Я знал, что мне будет стыдно.

орфографическая ошибка, дата архивирования в одном и архив i alDate в другом.

Пожалуйста, похорони меня сейчас ...

0 голосов
/ 10 сентября 2010

В этот раз это может не помочь, но я обычно вставляю XML в файл * .xml в Eclipse, а затем автоматически форматирую файл (ctrl-shift-f), что значительно упрощает просмотр таких вещей.

0 голосов
/ 10 сентября 2010

Пусть компьютер сделает всю работу: http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html#difference(java.lang.String, java.lang.String)

Если вы ожидаете, что структура будет одинаковой, но с другим содержимым, вы должны увидеть только изменения содержимого в выводе.

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