Lecturas relacionadas:
Use AJAX para cargar archivos y otros parámetros (desarrollo de Java)
1. Archivo XML:
¿Qué es XML? XML generalmente se refiere a un lenguaje de marcado extensible, un subconjunto de lenguajes de marcado general estándar, y es un lenguaje de marcado utilizado para marcar archivos electrónicos para hacerlos estructurales.
2. Ventajas de los archivos XML:
1) El contenido y la estructura de los documentos XML están completamente separados.
2) interoperabilidad fuerte.
3) Estandarizar y unificar.
4) Admite múltiples codificaciones.
5) fuerte escalabilidad.
3. Cómo analizar los documentos XML:
Los documentos XML de análisis XML en diferentes idiomas son los mismos, pero la sintaxis de implementación es diferente. Hay dos métodos de análisis básicos. Uno es el método SAX, que analiza paso a paso en el orden de los archivos XML. Otro método analítico es el método DOM, y la clave del método DOM es el nodo. También hay DOM4J, JDOM y otros métodos. Este artículo presenta los métodos DOM y DOM4J y el método para encapsularlos en una clase de herramientas para leer documentos XML.
4.xml Documentación:
scores.xml:
<? xml versión = "1.0" encoding = "utf-8"?> <! Doctype Students [<<! Element Students (Student+)> <! Element Student (nombre, curso, puntaje)> <! AttList Student ID CDATA #Required> <! Element Name (#PCDATA)> <CURSO DELEMENTO DELEMENT <name> Zhang San </name> <cursual> javase </scurse> <nace> 100 </nacening> </student> <student id = "22"> <name> li si </name> <cursual> oracle </scurse> <nasting> 98 </fast> </firection> </students>
5. Doming XML
Public static void main (String [] args) arroja ParserconfigurationException, SaxException, IOException {// 1. Crear DOM Parser Factory DocumentBuilderFactory dbf = documentBuilderFactory.newinStance (); // 2. Crear analizador DOM desde DOM PARSER Factory DocumoryBuilder db = dbf.newDocumentBuilder (); // 3. Analiza el documento del analizador DOM para generar el documento DOM Tree doc = db.Parse ("scores.xml"); // 4. Analiza el árbol DOM y obtiene el contenido del documento (texto de atributo de elemento) //4.1 Obtenga las puntuaciones del elemento raíz Nodelist standeSList = doc.getChildNodes (); Nodo scoresNode = storesList.Item (1); System.out.println (standoresList.getLength ()); //44. System.out.println (StudentList.getLength ()); //4.3 Procese cada estudiante para (int i = 0; i <studentList.getLength (); i ++) {nodo stunode = studentList.Item (i); //System.out.println (stunode.getNodeType ()); // El ID de atributo del elemento de salida if (stunode.getNodeType () == node.element_node) {element elem = (element) stunode; String id = elem.getAttribute ("id"); System.out.println ("id ------>"+id); } // Los elementos infantiles de la puntuación del curso de nombre del elemento de salida nodelist ncslist = stunode.getChildNodes (); //System.out.println (ncslist.getLength ()); for (int j = 0; j <ncslist.getLength (); j ++) {nodo ncs = ncslist.item (j); if (ncs.getNodeType () == node.element_node) {string name = ncs.getNodeName (); // string value = ncs.getFirstChild (). GetNodeValue (); // El texto es un hijo de un elemento, por lo que debe ser GetFirstChild String Value = ncs.gettextContent (); System.out.println (nombre+"----->"+valor); }} System.out.println (); }}6. Documentos XML de análisis de método DOM4J:
public static void main (string [] args) lanza documentException {// use dom4j para analizar las puntuaciones 2.xml, generar DOM Tree SaxReader Reader = new Saxreader (); Documento doc = Reader.read (nuevo archivo ("scores.xml")); // Obtener nodo raíz: standers elemento root = doc.getRootElement (); // Obtenga todos los nodos infantiles de los estudiantes: estudiante iterador <ememem> it = root.elementIterator (); // Entrena a cada estudiante mientras (it.hasnext ()) {// obtiene cada elemento de estudiante stuelem = it.next (); //System.out.println(Stuelem); // emite atributos del estudiante: ID List <Attribute> attrList = stuelem.attributes (); for (attribute attr: attrList) {String name = attr.getName (); Valor de cadena = attr.getValue (); System.out.println (nombre+"----->"+valor); } // ELEMENTO DEL NIÑO DE ESTUDIANTE: Nombre, curso, puntaje iterador <emente> it2 = stuelem.elementIterator (); while (it2.hasnext ()) {elemento elem = it2.next (); Name de cadena = elem.getName (); String text = elem.gettext (); System.out.println (nombre+"----->"+texto); } System.out.println (); }}Por supuesto, no importa de qué manera analizamos XML, necesitamos importar el paquete JAR (no lo olvide).
7. A mi propia manera:
En proyectos de desarrollo reales, debemos ser buenos para usar clases de herramientas y encapsular las funciones que usamos repetidamente en una clase de herramientas. Por lo tanto, el siguiente método es la forma en que lo uso durante el proceso de desarrollo.
7.1 ¿Cuáles son los archivos de propiedades?
7.1.1 estructuralmente:
Los archivos .xml son principalmente archivos de árbol.
El archivo .properties existe principalmente en forma de pares de valor clave de valor clave.
7.1.2 Desde una perspectiva flexible:
Los archivos .xml son más flexibles que los archivos .properties.
7.1.3 Desde un punto de vista conveniente:
El archivo .properties es más fácil de configurar que el archivo .xml.
7.1.4 Desde la perspectiva de la aplicación:
. Los archivos de propiedad son más adecuados para proyectos pequeños y simples porque .xml es más flexible.
7.2 Documentación de su propia propiedad:
Creé un archivo Path.Properties en mi propio proyecto, que se utiliza para almacenar la ruta que usaré y almacenado en forma de nombre = valor. Por ejemplo:
realPath = d:/file/
7.3 analiza su propio archivo .properties:
Public Class PropertiesUtil {private static PropertiesUtil Manager = null; Private Static Object ManagerLock = nuevo objeto (); Private Object PropertiesLock = new Object (); String static static privado database_config_file = "/path.properties"; Propiedades privadas Propiedades = NULL; public static PropertiesUtil getInStance () {if (ganager == null) {synChronized (gereMlock) {if (ganager == null) {manager = new PropertiesUtil (); }}} return Manager; } private PropertiesUtil () {} public static string getProperty (nombre de cadena) {return getInstance () ._ getProperty (nombre); } String private _getProperty (nombre de cadena) {initProperty (); String Property = Properties.getProperty (nombre); if (propiedad == null) {return ""; } else {return Property.trim (); }} public static enumeration <?> Propertynames () {return getInstance () ._ Propertynames (); } enumeración privada <?> _Propertynames () {initProperty (); Return Properties.Propertynames (); } private void initProperty () {if (Properties == NULL) {SynChronized (PropertiesLock) {if (Properties == NULL) {LoadProperties (); }}}} private void loadProperties () {Properties = new Properties (); InputStream in = null; Pruebe {in = getClass (). GetResourceasstream (database_config_file); propiedad.load (in); } Catch (Exception e) {System.err .println ("Error de lectura de propiedades conf conf en PropertiesUtil.loadprops ()" + e); E.PrintStackTrace (); } finalmente {try {in.close (); } Catch (Exception e) {}}} / ** * Proporcionar ruta del archivo de configuración * * @param filepath * @return * / public properies loadProperties (String filePath) {Properties Properties = new Properties (); InputStream in = null; intente {in = getClass (). getResourceASStream (filePath); propiedad.load (in); } Catch (Exception e) {System.err .println ("Error de lectura de propiedades conf conf en PropertiesUtil.LoadProperties ()" + e); E.PrintStackTrace (); } finalmente {try {in.close (); } capt (excepción e) {}} propiedades de retorno; }} Antes de usarlo, solo necesitamos adjuntar un valor a la propiedad DATABASE_CONFIG_FILE , que es el nombre de nuestro archivo .properties. Al usarlo, podemos usar directamente el nombre de la clase. getProperty(“realPath”); Para obtener el contenido con la clave en el archivo .properties que es realpath.
Lo anterior es el método de lectura de archivos de configuración XML y propiedades en el desarrollo de Java presentados por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor te responderá a tiempo.