Я видел много программ, где XML-документы могут быть созданы с использованием Java с указанными полями. Мне еще предстоит встретить тот, где пользователь может определить имена rootElement и childEelement. Кто-нибудь знает, как это сделать?Создание XML-документа с использованием Java
ответ
Используйте XStream
Java Code
XStream xstream = new XStream();
xstream.alias("person", Person.class);
xstream.alias("phonenumber", PhoneNumber.class);
Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));
String xml = xstream.toXML(joe);
Выходной XML
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
Библиотека: http://x-stream.github.io/tutorial.html
Проверьте этот пример, вы можете получить xml в конце примера, используя парсер JDOM.
Creating an XML document using Java
JDOM пример для создания XML-файла.
import java.io.FileWriter;
import java.io.IOException;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class WriteXMLFile {
public static void main(String[] args) {
try {
Element company = new Element("company");
Document doc = new Document(company);
doc.setRootElement(company);
Element staff = new Element("staff");
staff.setAttribute(new Attribute("id", "1"));
staff.addContent(new Element("firstname").setText("yong"));
staff.addContent(new Element("lastname").setText("mook kim"));
staff.addContent(new Element("nickname").setText("mkyong"));
staff.addContent(new Element("salary").setText("199999"));
doc.getRootElement().addContent(staff);
Element staff2 = new Element("staff");
staff2.setAttribute(new Attribute("id", "2"));
staff2.addContent(new Element("firstname").setText("low"));
staff2.addContent(new Element("lastname").setText("yin fong"));
staff2.addContent(new Element("nickname").setText("fong fong"));
staff2.addContent(new Element("salary").setText("188888"));
doc.getRootElement().addContent(staff2);
// new XMLOutputter().output(doc, System.out);
XMLOutputter xmlOutput = new XMLOutputter();
// display nice nice
xmlOutput.setFormat(Format.getPrettyFormat());
xmlOutput.output(doc, new FileWriter("c:\\file.xml"));
System.out.println("File Saved!");
} catch (IOException io) {
System.out.println(io.getMessage());
}
}
}
Созданный XML-файл находится ниже.
<?xml version="1.0" encoding="UTF-8"?>
<company>
<staff id="1">
<firstname>yong</firstname>
<lastname>mook kim</lastname>
<nickname>mkyong</nickname>
<salary>199999</salary>
</staff>
<staff id="2">
<firstname>low</firstname>
<lastname>yin fong</lastname>
<nickname>fong fong</nickname>
<salary>188888</salary>
</staff>
</company>
Спасибо ..
Вот пример того, как сделать это. Разумеется, есть много способов его достижения. Этот использует JAXB. (Java XML Binding)
http://www.mkyong.com/java/jaxb-hello-world-example/
Это сейчас очень простой пример. JAXB хорошо, потому что вы аннотировать POJO, используя стандартный Java:
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class SimpleXML {
String name;
int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public static void main(String args[]) throws JAXBException {
File xmlFile = new File("C:/temp/test.xml");
SimpleXML xml = new SimpleXML();
xml.setId(4);
xml.setName("TestName");
JAXBContext context = JAXBContext.newInstance(SimpleXML.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Marshaller marshaller = context.createMarshaller();
//write to file
marshaller.marshal(xml, xmlFile);
//read from file
SimpleXML newXML=(SimpleXML)unmarshaller.unmarshal(xmlFile);
System.out.println(newXML.id);
System.out.println(newXML.name);
}
}
Это exmaple создает экземпляр SimpleXML и записывает это в файл. Этот файл выглядит так:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<simpleXML><id>4</id><name>TestName</name></simpleXML>
После этого файл снова считывается в другом экземпляре SimpleXML. Все значения сохранены.
JAXB дает вам много возможностей для настройки вывода XML (имена тегов, имена атрибутов, конвертер данных и прочее).
- 1. Создание Pdf с использованием java
- 2. Создание plist с использованием Java
- 3. Создание отчетов с использованием Java
- 4. Создание видеопроигрывателя с использованием Java
- 5. Создание словаря с использованием java
- 6. Создание Snake с использованием Java
- 7. Создание JSON в java с использованием org.json
- 8. Создание конструкторов с использованием Enums в Java
- 9. создание простой ftp с использованием Java
- 10. Создание галереи изображений с использованием Java
- 11. java - Создание подстановок с использованием Hashmap
- 12. Создание графического интерфейса Java с использованием 2dGraphics
- 13. JAVA Создание программы с использованием массива
- 14. Создание файла PRN с использованием java
- 15. создание плит с использованием bufferedImage в java
- 16. Создание объекта с использованием типа Generics Java
- 17. Создание статических HTML-страниц с использованием Java
- 18. Создание xml с использованием DOM в java
- 19. Создание приложения iOS с использованием Java Enterprise
- 20. Java - создание массива с использованием цикла
- 21. Создание круга с использованием строк в java
- 22. Создание java-исполняемого файла с использованием JNI?
- 23. Создание индекса с использованием массива Api java
- 24. создание проекта java с использованием утилиты ANT
- 25. Создание pdf-файла с использованием java, Itext
- 26. Создание фонового процесса с использованием java
- 27. Создание метода цезарного шифрования с использованием java
- 28. Создание XML с использованием SAX и Java
- 29. Создание QMainWindow из Java с использованием JNI
- 30. Создание графического интерфейса с использованием GridBagLayout (Java)
Что именно вы имеете в виду _with указано fields_ ? [Вот простой пример] (http://www.mkyong.com/java/how-to-create-xml-file-in-java-dom/) использования 'DocumentBuilder' для создания DOM. –
Определите свою интерпретацию «полей XML» и «XML-элементов», потому что по вашей формулировке кажется, что вы думаете, что это разные вещи? –
http://www.mkyong.com/java/how-to-create-xml-file-in-java-dom/ – Pshemo