Java verwendet JAXB, um XML-Beispiele zu betreiben
Definieren Sie zunächst zwei Beispielklassen, ClassA und ClassB, für nachfolgende Beispieldemonstrationen
package cn.lzrabbit; public class ClassA { private int classAId; private String classAName; private ClassB classB; public int getClassAId() { return classAId; } public void setClassAId(int classAId) { this.classAId = classAId; } public String getClassAName() { return classAName; } public void setClassAName(String classAName) { this.classAName = classAName; } public ClassB getClassB() { return classB; } public void setClassB(ClassB classB) { this.classB = classB; } } ClassA
package cn.lzrabbit; public class ClassB { private int classBId; private String classBName; public int getClassBId() { return classBId; } public void setClassBId(int classBId) { this.classBId = classBId; } public String getClassBName() { return classBName; } public void setClassBName(String classBName) { this.classBName = classBName; } } ClassB
XmlUtil für die Serialisierung
package cn.lzrabbit; import java.io.StringReader; import java.io.StringWriter; import javax.xml.bind.*; public class XmlUtil { public static String toXML(Object obj) { try { JAXBContext context = JAXBContext.newInstance(obj.getClass()); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");// //编码格式 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串 marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);// 是否省略xm头声明信息 StringWriter writer = new StringWriter(); marshaller.marshal(obj, writer); return writer.toString(); } catch (Exception e) { throw new RuntimeException(e); } } @SuppressWarnings("unchecked") public static <T> T fromXML(String xml, Class<T> valueType) { try { JAXBContext context = JAXBContext.newInstance(valueType); Unmarshaller unmarshaller = context.createUnmarshaller(); return (T) unmarshaller.unmarshal(new StringReader(xml)); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } } } XmlUtil
wird wie folgt aufgerufen:
package cn.lzrabbit; public class MainRun { /** * @param args */ public static void main(String[] args) { ClassB classB = new ClassB(); classB.setClassBId(22); classB.setClassBName("B2"); ClassA classA = new ClassA(); classA.setClassAId(11); classA.setClassAName("A1"); classA.setClassB(classB); System.out.println(XmlUtil.toXML(classA)); } } MainRun
Das Ausgabeergebnis lautet wie folgt:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <classA> <classAId>11</classAId> <classAName>A1</classAName> <classB> <classBId>22</classBId> <classBName>B2</classBName> </classB> </classA>
Die folgenden Punkte sollten hier beachtet werden
1 Fügen Sie der zu serialisierenden Klasse die Annotation @XmlRootElement hinzu, andernfalls ein Fehler wird gemeldet (Fehler Die Eingabeaufforderung ist sehr klar, daher werde ich sie hier nicht veröffentlichen)
2 Wenn JAXB XML serialisiert, werden Getter und Setter standardmäßig serialisiert, und Getter und Setter müssen paarweise erscheinen serialisierte
3 Attribute Name, standardmäßig werden die ersten Buchstaben der serialisierten Klassen- und Attributnamen in Kleinbuchstaben umgewandelt. Wenn Sie den Attributnamen steuern müssen, müssen Sie @XmlElement(name="ClassAId") verwenden Hier ist zu beachten, dass der Getter oder Setter den Namen angeben muss @XmlElement Es kann auf dem Getter oder Setter platziert werden, aber nur einer kann platziert werden, was bedeutet, dass die Annotation @XmlElement nicht sowohl auf dem Getter als auch auf dem Setter verwendet werden kann Setter gleichzeitig
4 Wie steuere ich den Namen des Wurzelknotens?
Verwenden Sie @XmlRootElement, um das Namensattribut anzugeben, z. B. @XmlRootElement(name="ClassA")
5 So fügen Sie einen Namespace hinzu
Verwenden Sie @XmlRootElement(namespace="cn.lzrabbit") um die Namespace-Attribute anzugeben
6 So steuern Sie jeden Attributnamen genau
JAXB wandelt den ersten Buchstaben automatisch in Kleinbuchstaben um, was dazu führt, dass unvorhersehbare Attributnamen angezeigt werden. Wenn dies kein Problem darstellt, legen Sie @XmlElement( fest. name="") für jedes Attribut, wenn Sie Ärger sparen möchten, verwenden Sie Field
7 So verwenden Sie das Field-Feld anstelle von Setter und Getter beim Serialisieren
Fügen Sie @XmlAccessorType(XmlAccessType.FIELD) hinzu. Annotation zur zu verwendenden Klasse hinzufügen und angeben. Für XmlAccessType.FIELD wird dringend empfohlen, die Annotation @XmlAccessorType(XmlAccessType.FIELD) zu verwenden, da Sie auf diese Weise den Namen jedes Elements präzise steuern können, ohne das @XmlElement festlegen zu müssen (name="")-Annotation für jedes Attribut. Natürlich können Sie auch die @XmlElement-Annotation für das Feld verwenden
Das Folgende ist ein Codebeispiel mit der obigen Annotation
@XmlRootElement(namespace="cn.lzrabbit") @XmlAccessorType(XmlAccessType.FIELD) public class ClassA { private int classAId; @XmlElement(name="ClassAName") private String classAName; private ClassB classB; public int getClassAId() { return classAId; } public void setClassAId(int classAId) { this.classAId = classAId; } public String getClassAName() { return classAName; } public void setClassAName(String classAName) { this.classAName = classAName; } public ClassB getClassB() { return classB; } public void setClassB(ClassB classB) { this.classB = classB; } } @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class ClassB { private int ClassBId; private String ClassBName; public int getClassBId() { return ClassBId; } public void setClassBId(int classBId) { this.ClassBId = classBId; } public String getClassBName() { return ClassBName; } public void setClassBName(String classBName) { this.ClassBName = classBName; } }
Die Ausgabe-XML ist
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:classA xmlns:ns2="cn.lzrabbit"> <classAId>11</classAId> <ClassAName>A1</ClassAName> <classB> <ClassBId>22</ClassBId> <ClassBName>B2</ClassBName> </classB> </ns2:classA>
Mehr Bitte beachten Sie die PHP-Chinese-Website für verwandte Artikel zu mehreren Java-Beispielen mit JAXB zum Betrieb von XML-Beispielen!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Geschwindigkeit der mobilen XML zu PDF hängt von den folgenden Faktoren ab: der Komplexität der XML -Struktur. Konvertierungsmethode für mobile Hardware-Konfiguration (Bibliothek, Algorithmus) -Codierungsoptimierungsmethoden (effiziente Bibliotheken, Optimierung von Algorithmen, Cache-Daten und Nutzung von Multi-Threading). Insgesamt gibt es keine absolute Antwort und es muss gemäß der spezifischen Situation optimiert werden.

Mit einer einzigen Anwendung ist es unmöglich, XML -zu -PDF -Konvertierung direkt auf Ihrem Telefon zu vervollständigen. Es ist erforderlich, Cloud -Dienste zu verwenden, die in zwei Schritten erreicht werden können: 1. XML in PDF in der Cloud, 2. Zugriff auf die konvertierte PDF -Datei auf dem Mobiltelefon konvertieren oder herunterladen.

Es ist nicht einfach, XML direkt auf Ihr Telefon in PDF umzuwandeln, kann jedoch mit Hilfe von Cloud -Diensten erreicht werden. Es wird empfohlen, eine leichte mobile App zu verwenden, um XML -Dateien hochzuladen und generierte PDFs zu empfangen und sie mit Cloud -APIs zu konvertieren. Cloud -APIs verwenden serverlose Computerdienste, und die Auswahl der richtigen Plattform ist entscheidend. Bei der Behandlung von XML -Parsen und PDF -Generation müssen Komplexität, Fehlerbehebung, Sicherheit und Optimierungsstrategien berücksichtigt werden. Der gesamte Prozess erfordert, dass die Front-End-App und die Back-End-API zusammenarbeiten, und es erfordert ein gewisses Verständnis einer Vielzahl von Technologien.

XML -Formatierungs -Tools können Code nach Regeln eingeben, um die Lesbarkeit und das Verständnis zu verbessern. Achten Sie bei der Auswahl eines Tools auf die Anpassungsfunktionen, den Umgang mit besonderen Umständen, die Leistung und die Benutzerfreundlichkeit. Zu den häufig verwendeten Werkzeugtypen gehören Online-Tools, IDE-Plug-Ins und Befehlszeilen-Tools.

Verwenden Sie die meisten Texteditoren, um XML -Dateien zu öffnen. Wenn Sie eine intuitivere Baumanzeige benötigen, können Sie einen XML -Editor verwenden, z. B. Sauerstoff XML -Editor oder XMLSPY. Wenn Sie XML -Daten in einem Programm verarbeiten, müssen Sie eine Programmiersprache (wie Python) und XML -Bibliotheken (z. B. XML.etree.elementtree) verwenden, um zu analysieren.

Eine Anwendung, die XML direkt in PDF konvertiert, kann nicht gefunden werden, da es sich um zwei grundlegend unterschiedliche Formate handelt. XML wird zum Speichern von Daten verwendet, während PDF zur Anzeige von Dokumenten verwendet wird. Um die Transformation abzuschließen, können Sie Programmiersprachen und Bibliotheken wie Python und ReportLab verwenden, um XML -Daten zu analysieren und PDF -Dokumente zu generieren.

Um eine Web.xml -Datei zu öffnen, können Sie die folgenden Methoden verwenden: Verwenden Sie einen Texteditor (z.

XML Online-Format-Tools organisieren automatisch den chaotischen XML-Code in einfach zu lesenden und verwalteten Formaten. Durch die Parsen des Syntaxbaums von XML und die Anwendung von Formatierungsregeln optimieren diese Tools die Struktur des Codes und verbessern die Wartbarkeit und die Effizienz der Teamarbeit.
