Programación en castellano
Inicio > Foros > Java y XML > lectura de un XML
-Foros de debate

Java y XML
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

lectura de un XML
Enviado por Mikel el día 24 de enero de 2006

Hola.
Tengo problemas a la hora de cargar un XML y obtener los nodos y sus respectivos valores.
He probado con un par de opciones y nada de nada.
La primera opcion con el api DOM:

public Document crearDocDOM(String fichero)
{
////1º se crea el objeto q va a almacenar el xml
org.w3c.dom.Document docXML=null;
try
{
com.ibm.xml.parsers.DOMParser parser = new com.ibm.xml.parsers.DOMParser();
parser.parse(fichero);
docXML = parser.getDocument();
}
catch (Exception e)
{
e.printStackTrace();
}
return docXML;
}

//Con este sacas los valores:

public void leerDocDOM(Document docDOM)
{
Element elemDOM=docDOM.getDocumentElement();
NodeList listaNodos = elemDOM.getElementsByTagName("*");

for(int i=0; i< listaNodos.getLength(); i++)
{
Element elem= (Element)listaNodos.item(i);
Node miNodo = listaNodos.item(i);

String nombreNodo= miNodo.getNodeName();
String valorNodo = miNodo.getFirstChild().getNodeValue();

System.out.println("valornodo "+valorNodo+" valornodo");

System.out.println(nombreNodo + ":::" + valorNodo );
}
}

No puede leer el valor del primer nodo, el nombre si que lo lee

Y la otra con el api JSR 188 (especifico para perfiles CC/PP):

public Profile getProfileFromFile(String ccppFile) throws FileNotFoundException {
ProfileFactory pf = ProfileFactoryImpl.getInstance();
//ProfileFactory.setInstance(pf);

System.out.println("1 "+pf.toString());

ProfileFragmentFactory ff = ProfileFragmentFactoryImpl.getInstance();
//ProfileFragmentFactory.setInstance(ff);

System.out.println("2 "+ff.toString());

//Configure the vocabulary
DescriptionManager dm = DescriptionManager.getInstance();

System.out.println("3 "+dm.toString());

try {
// set the schema
File schema = new File("vocabulary.xsd");

System.out.println("4 "+schema.getAbsolutePath());

DescriptionManager.setSchema(schema);

File vocab = null;
vocab = new File("ccppschema-20010430.xml");
dm.addVocabulary(vocab);
vocab = new File("ccppschema-20010430a.xml");
dm.addVocabulary(vocab);
vocab = new File("ccppschema-20010430b.xml");
dm.addVocabulary(vocab);

System.out.println("5 "+dm.hashCode());

} catch(Exception e) {
e.printStackTrace();
}

File f = new File(ccppFile);

System.out.println("IMPORT "+f.getAbsolutePath());
System.out.println("IMPORT "+f.getName());

// Read the CC/PP profile from a file
InputStream is = new FileInputStream(ccppFile);
//InputStream is = new FileInputStream(f);

System.out.println("6 "+is.toString());

ProfileFragment pfa[] = new ProfileFragment[1];
//crea un array de una dimension

System.out.println("7 "+pfa.length);

pfa[0] = ff.newProfileFragment(is);

System.out.println("8 "+pfa[0].toString());

System.out.println("9 "+ff.newProfileFragment(is).toString());

System.out.println("10 "+pf.newProfile(pfa));

return pf.newProfile(pfa);

}

// Given a profile, list its attribute name/value pairs
public void processProfile(Profile profile) {
Set comps = profile.getComponents();
for(Iterator i = comps.iterator(); i.hasNext(); ) {
Component comp = (Component) i.next();
System.out.println("Component: " + comp.getName());

Set attrs = comp.getAttributes();

for(Iterator j = attrs.iterator(); j.hasNext(); ) {
Attribute attr = (Attribute) j.next();
Object value = attr.getValue();
System.out.println("\tAttribute: " + attr.getName() +
" = " + attr.getValue());
}
}
}

La funcion getProfileFromFile me devuelve un perfil nulo.
Los vocabularios y los esquemas estan bien, seguro.

Agredeceria que alguien me pudiera ayudar.
Adios

 
Re: lectura de un XML
Enviado por neossoftware el día 24 de enero de 2006

Porque no pruebas con la API de Jakarta Digester, creo que te vas a evitar varios dolores de cabeza

http://jakarta.apache.org/commons/digester/

Saludos!!!!

 


Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados