Вы захотите использовать макросы форматирования от inttypes.h.
Посмотрите этот вопрос: строка Кросс-платформенного формата для переменных типа size_t?
It really depends on what you want to do with the XML document and how big the documents are.
Roughly, you can categorise XML APIs as:
Some options available are:
Я считаю, что dom4j превосходит все, что я использовал (особенно JDOM, у которого, как я считаю, особенно плохой API). dom4j позволяет подключить Jaxen для поддержки XPath.
Примеры:
SAXReader reader = new SAXReader(); // dom4j SAXReader
Document document = reader.read(xmlInputStream); // dom4j Document
// select all link nodes with href "http://example.com"
List<Element> linkNodes = document.selectNodes("//link[@href='http://example.com']");
// select an attribute value
String val = linkNodes.get(0).attributeValue("href");
// select element text and trim it
String value = document.elementTextTrim("childNode");
Существует множество библиотек, которые позволяют обрабатывать XML по-разному, и ни один из них не является «лучшим». Как всегда, это зависит от того, что вы пытаетесь сделать и каковы ваши требования.
Когда мне нужен синтаксический анализатор, подобный DOM, или для создания XML-документов, мне лично нравится XOM , поскольку он гарантирует, что XML-документы хорошо сформированы и «правильны». Его приоритет номер один - это корректность, которая важна при взаимодействии с другими системами, с чем XML справляется очень хорошо. Его API также очень хорошо спроектирован и интуитивно понятен, что упрощает выполнение обычных операций.
Я предпочитаю использовать классическую комбинацию DOM и SAX.
Если вы только читаете, то XPath - хороший выбор. В противном случае DOM (в пакете org.w3c.dom
) - ваш лучший выбор.
Вы должны выбрать между двумя разными подходами к обработке XML: существует DOM и SAX , оба с преимуществами и недостатками. Все зависит от ваших потребностей и размера XML-документа, который вы хотите обработать. Уже упомянутый JAXB создает API, описанный выше, и поставляется с Java 6.
Когда вы поняли вышеизложенное, вы можете конкретизировать свой вопрос и, возможно, попросить лучшую DOM или лучшую реализацию SAX . Кроме того, было бы хорошо, если бы вы могли использовать свои требования. Вы хотите писать или читать XML? Насколько велики будут файлы? И т. Д.
РЕДАКТИРОВАТЬ:
Как указал Нат , существует также StAX в качестве третьей альтернативной концепции.
Java хорошо поддерживает XML. Проблема в том, что существует очень много вариантов. Итак, не существует единого решения, которое являлось бы «правильным» способом обработки XML в Java. Вы должны выбрать инструменты в зависимости от решаемой проблемы.
Допустим, у вас есть сложные проверенные документы, которые вы хотите загрузить в дерево объектов, которое затем вы можете запрашивать и управлять деревом. Для этого вам понадобится парсер DOM, и есть из чего выбрать. Это преобразует весь документ в объекты, что может быть дорогостоящим с точки зрения ЦП.
Допустим, у вас есть документ, в котором вы хотите выделить определенные элементы, и производительность является проблемой. Попробуйте синтаксический анализатор SAX, синтаксический анализатор запроса или XPath.
Возможно, вам нужно маршалировать / демаршалировать объекты в сети. JAXB является кандидатом для этого, как и другие варианты.
Итак, есть ' Нет единственного правильного ответа на ваш вопрос. Как и в случае любой проблемы [программирования], вы должны рассмотреть проблему, оценить варианты и выбрать лучший инструмент для работы.
Когда мне нужно было работать с XML-документами, я всегда думал о dom4j / sax как о первом средстве, и это никогда меня не подводит. ;)
Вам следует заглянуть в SAXReader.
@Epaga, если вы не поместите слово «лучший» в контекст, вы проиграете с треском.
Например, попытка загрузить огромный XML в структуру, подобную DOM, была бы очень глупой. Выбирать инструмент нужно с умом.
XOM ( http://www.xom.nu ) - это простой и гибкий набор инструментов XML, который я нашел более простым и легким в использовании, чем многие другие парсеры. После перехода со стандартных инструментов на основе W3C моя продуктивность значительно выросла. На своих веб-страницах автор Эллиотт Расти Гарольд объясняет, почему дизайн XOM является подходящей моделью для XML DOM.