Я попробовал два решения с высоким рейтингом, но нашел некоторые проблемы, хотя оба они работают в некоторой степени.
После некоторых экспериментов я нашел, что следующий метод хорошо работает для меня.
Если вам просто нужно изменить последнюю часть имени пакета, используйте метод, описанный GreyBeardedGeek , а именно
Щелкните правой кнопкой мыши пакет на панели «Проект». Выберите «Рефакторинг» -> «Переименовать» из контекстного меню
. Если вам нужно изменить полное имя пакета, сделайте следующее.
Щелкните правой кнопкой мыши на пакете на панели «Проект». Выберите «Рефактор» -> «Переместить» из контекстного меню
. Это создаст новую папку пакета (если необходимо), но сохранит последнюю часть имени вашего пакета, как и раньше. Если вам нужно изменить последнюю часть, выполните переименование соответственно.
Обратите также внимание, что вам может потребоваться изменить имена пакетов, например. build.gradle, manifest и / или любые файлы ресурсов xml или даже в вашем коде, если они жестко закодированы. После этого при необходимости выполните проект Sync / Clean / Rebuild.
Я рекомендую XOM. Его API ясен и интуитивен.
Необходимо проверить Xstream. Существует 2-минутное учебное руководство, которое является действительно просто . Для получения того же формата Вы смоделировали бы классы то же.
Dom4j является простым API для создания xml документы в Java.
Document document = DocumentHelper.createDocument();
Element root = document.addElement( "root" );
Element author2 = root.addElement( "author" )
.addAttribute( "name", "Toby" )
.addAttribute( "location", "Germany" )
.addText( "Tobias Rademacher" );
Некоторые более популярные подходы для рассмотрения:
JAXB является спецификацией для стандартной привязки XML. Если у Вас уже есть XSD, он может генерировать Ваши классы Java для Вас и затем всего, что это оставляют, должен использовать стандартный API для маршалинга/немаршалинга.
Как с JAXB, эти подходы используют основанные на XML обязательные конфигурации. Они могут обеспечить более мелкомодульное управление процесса немаршалинга.
Используя StAXЕсли Вы используете jdk 1.4, или более новый смотрят на класс XMLEncoder .
Самый простой путь до сих пор MarkupBuilder в Groovy. Думайте о Groovy как о новом синтаксисе для Java. XmlSlurper может использоваться для чтения XML.
Я думаю, что Apache XMLBeans обеспечивает функциональность, которая Вы после.
страница Wikipedia дает хороший обзор и использование в качестве примера.
Существует широкий выбор опций обработки XML для Java, хотя судя по документации.NET для XmlDocument, Java, реализация DOM является самым близким out-of-the-box эквивалентом.
.NET XmlDocument:
Этот класс реализует Ядро Уровня 1 Объектной модели документа (DOM) W3C и Базовый документ Java Уровня 2.
DOM:
См. также Спецификацию Ядра Уровня 3 Объектной модели документа (DOM).
Пример кода:
public static void main(String[] args) throws Exception {
File xmlFile = new File(".classpath");
// read it
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(xmlFile);
// walk it
System.out.println("Node count=" + countNodes(document));
// write it
Source source = new DOMSource(document);
Result result = new StreamResult(System.out);
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(source, result);
}
/** Doesn't count attributes, etc */
private static int countNodes(Node node) {
int count = 0;
NodeList kids = node.getChildNodes();
count += kids.getLength();
for (int i = 0; i < kids.getLength(); i++) {
count += countNodes(kids.item(i));
}
return count;
}
Если парсинг SAX обязателен, JAXP является хорошим выбором. Я предпочитаю парсинг DOM и использую jdom, который кажется намного легче мне.
Я думаю, что JAXB сложен, только если вы посмотрите на неправильные примеры. В частности, да, основанный на схеме способ может запутаться. Но сначала код, основанный на аннотациях, тривиально прост.
Другой простой альтернативой является XStream . И для случая без привязки, StaxMate , который является надстройкой для потоковых парсеров Stax.
Я бы определенно использовал XOM, если вам нужен подход, подобный DOM, и SAX (www.sax.org), если вам нужен подход, подобный SAX. Я принимал участие в ранней разработке XML, и SAX был разработан как подход, управляемый событиями, который полезен для некоторых приложений. DOM / XOM и SAX дополняют друг друга - иногда вам нужен один, иногда другой. Если вы хотите создавать объекты на ходу, а не считывать все в память, используйте SAX. Если вы готовы все прочитать, а затем обработать, используйте XOM.
Я потратил слишком много времени, пытаясь заставить W3C DOM работать - ИМО, он плохо определен, слишком много способов делать одни вещи и недостаточно для других. Когда появился XOM, он произвел революцию в моей производительности.
Сообщество XOM очень хорошо осведомлено, целенаправленно и полезно.