Hace unos días publique como leer un XML usando JDOM, jugando con esta librería me aburrí un poco y dejo esta forma de leer un XML, el cual contiene un Modelo basado en OO-Method con clases, atributos entre otras cosas, el programa en Java solo identifica las clases y sus atributos (del XML).

 

XML

<?xml version="1.0" encoding="UTF-8"?>
<metawebdesign:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:metawebdesign="http://metawebdesign/1.0">
  <class name="Clase">
    <hasAttributes xsi:type="metawebdesign:NotDerived" name="No_derivado"/>
    <hasAttributes xsi:type="metawebdesign:Derived" name="Derivado"/>
    <hasRelationClass name="Relacion_clase" fromClass="//@class.1"/>
    <hasRelationConstraint goRConstraint2="//@constraint.0" name="Relation_constraint"/>
  </class>
  <class name="Clase2">
    <hasAttributes xsi:type="metawebdesign:NotDerived" name="No_Derivado"/>
    <hasAttributes xsi:type="metawebdesign:Derived" name="Derivado"/>
    <hasAttributes xsi:type="metawebdesign:NotDerived" name="No_Derivado2"/>
  </class>
  <views xsi:type="metawebdesign:Form" title="ViewForm">
    <hasRelationView name="Relacion_view" fromClass="//@class.0"/>
    <hasViewComponent xsi:type="metawebdesign:ViewAttribute" name="ViewAttribute"/>
    <hasViewComponent xsi:type="metawebdesign:NavegationMenu" name="NavMenu">
      <hasLink xsi:type="metawebdesign:LinkView" name="l1"/>
      <hasLink xsi:type="metawebdesign:LinkViewCRUD" name="l2"/>
    </hasViewComponent>
  </views>
  <views xsi:type="metawebdesign:Page" title="ViewPage">
    <hasRelationView name="Relacion_view" fromClass="//@class.0"/>
  </views>
  <view_component xsi:type="metawebdesign:NavegationMenu" name="NavMenu">
    <hasLink xsi:type="metawebdesign:LinkViewCRUD" name="Link"/>
    <hasLink xsi:type="metawebdesign:LinkView" name="Link2"/>
  </view_component>
  <constraint name="Constraint"/>
</metawebdesign:Root>

 

Java

	public static void loadXML() throws IOException
	{
			String substr;
			FileReader fr = new FileReader("/home/leo/default.metawebdesign");
			BufferedReader br = new BufferedReader(fr);
			String line;
			//LECTURA
			while((line = br.readLine()) != null) {
				//Busqueda de una Clase
				int x_class=line.indexOf("class name="); //POSICION DE UNA CLASE
				int x_attribute=line.indexOf("<hasAttributes");//POSICION DE UN ATRIBUTO
				int x_attribute_name=line.indexOf("name=");//POSICION DEL NOMBRE DEL ATRIBUTO
				if(x_class != -1){
			        substr = line.substring(x_class+12, line.length()-2);
			        System.out.println(substr);
			    }
				if(x_attribute != -1){
			        substr = line.substring(x_attribute_name+6, line.length()-3);
			        System.out.println("->"+substr);					
				}
			}
			fr.close();
			
	}


	public static void main(String[] args) throws IOException {
		loadXML();
	}

Resultado:

xml

Categories: SoftwareTutoriales