Problem beim XML-Lesen

  • Themenstarter Themenstarter Jboss
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
J

Jboss

Gast
Hi,
ich hab ein Problem mit dem Lesen einer XML-Datei.
Der erster Block von Product wird ohne Problem gelesen danach kriege ich Exceptions dass das Rootelement wohlgeformt sein muss .Ist das Document nicht wohlgeformt ?
Wie kann man Rootelemt einer XML-Datei einfügen ?

javax.xml.stream.XMLStreamException: ParseError at [row,col]:[9,2]
Message: The markup in the document following the root element must be well-formed.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
at com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(Unknown Source)

Code:
<?xml version="1.0" encoding="UTF-8"?>
<product>
	<id>001</id>
	<name>monitor</name>	
</product>
<product>
	<id>002</id>
	<name>laptop</name>	
</product>

Code:
public void readData() {
	try {
	    // First create a new XMLInputFactory
	    XMLInputFactory inputFactory = XMLInputFactory.newInstance();
	    // Setup a new eventReader
	    InputStream in = new FileInputStream(file);
	    XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
	    // Read the XML document
	    while (eventReader.hasNext()) {
		XMLEvent event = eventReader.nextEvent();
		if (event.isStartElement()) {
		if (event.asStartElement().getName().getLocalPart() == ("id")) {
			event = eventReader.nextEvent();			
			System.out.println(event.asCharacters().getData());
			continue;
		    }		
		    if (event.asStartElement().getName().getLocalPart() == ("name")) {
			event = eventReader.nextEvent();
			spieler = event.asCharacters().getData();
			System.out.println(event.asCharacters().getData());
			continue;
		    }
		    	    
		}
	    }
	} catch (FileNotFoundException e) {
	    e.printStackTrace();
	} catch (XMLStreamException e) {
	    e.printStackTrace();
	}
 }
 
Ohne jetzt wahnsinnig viel Ahnung von XML zu haben, glaube ich, dass du genau 1 Root Element haben musst.
Versuch es mal so:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<products>
  <product>
    <id>001</id>
    <name>monitor</name>   
  </product>
  <product>
    <id>002</id>
    <name>laptop</name>   
  </product>
</products>
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben