hab im Moment einen XML Beleg von einer Kommilitonin zur Kontrolle bei mir liegen.
Aufgabe war mit dem Java Programm die XML Dateien einzulesen, zu Ändern, neue Elemente hinzuzufügen und als HTML bzw PDF darzustellen.
Wenn man das Programm ausführt, in diesem Fall, ein neues Medikament hinzufügen möchte, bzw als HTML darstellen will, funktioniert dies nicht, da in die XML Datei nur der Header und ein leeres Wurzelelement geschrieben wird.
Da der Mensch, der den Quelltext geschrieben hat anscheinend nicht weiß wie ein Quelltext kommentiert wird, blicke ich absolut nicht durch
Ich hänge mal die Klasse ran in der der Fehler, meiner Meinung nach, sein muss.
Vielen Dank für schnelle Antworten, die Kommilitonin steht nämlich unter Zeitdruck weil sie ihn Montag (bzw eher Dienstag wegs Feiertag) abgeben muss
Achso, und zum Name vom Thema, hätt ich jetzt fast vergessen, der Schreiber des Quelltextes hat anscheinend sowohl DOM als auch SAX parser genutzt, da ich jetzt in dieser Thematik noch nich komplett belesen bin, wollt ich mal fragen ob das überhaupt möglich is beide zu nutzen wie es einem beliebt, oder ob es besser wäre sich für einen zu entscheiden, oder eventuell sogar der Fehler daran liegen könnte?
wäre super wenn sich hier jemand findet der helfen kann
}
if(doc.getChildNodes().item(0).getChildNodes().ite m(i).getChildNodes().item(j).getNodeName().equals( "Organe"))
{
/* NodeList Kinder = doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).getChildNodes();
for( int k = 0; k < Kinder.getLength(); k++)
{
doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).removeChild(Kinder.item( k));
}
*/ while(doc.getChildNodes().item(0).getChildNodes(). item(i).getChildNodes().item(j).hasChildNodes())
{
Node Kind = doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).getChildNodes().item(0);
doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).removeChild(Kind);
}
for(int k = 0; k < Organe.size(); k++)
{
Element Krankheit = doc.createElement("Organ");
Krankheit.setAttribute("id", (k+1)+"");
Krankheit.setTextContent(Organe.get(k));
doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).appendChild(Krankheit);
}
}
if(doc.getChildNodes().item(0).getChildNodes().ite m(i).getChildNodes().item(j).getNodeName().equals( "Wirkungen"))
{
/*
NodeList Kinder = doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).getChildNodes();
for( int k = 0; k < Kinder.getLength(); k++)
{
System.out.println("Löschen");
doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).removeChild(Kinder.item( k));
}
*/
while(doc.getChildNodes().item(0).getChildNodes(). item(i).getChildNodes().item(j).hasChildNodes())
{
Node Kind = doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).getChildNodes().item(0);
doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).removeChild(Kind);
}
System.out.println(doc.getChildNodes().item(0).get ChildNodes().item(i).getChildNodes().item(j).hasCh ildNodes());
for(int k = 0; k < Wirkungen.size(); k++)
{
Element Krankheit = doc.createElement("Wirkung");
Krankheit.setAttribute("id", (k+1)+"");
Krankheit.setTextContent(Wirkungen.get(k));
doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).appendChild(Krankheit);
}
}
if(doc.getChildNodes().item(0).getChildNodes().ite m(i).getChildNodes().item(j).getNodeName().equals( "Nebenwirkungen"))
{
/* NodeList Kinder = doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).getChildNodes();
for( int k = 0; k < Kinder.getLength(); k++)
{
doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).removeChild(Kinder.item( k));
}
*/ while(doc.getChildNodes().item(0).getChildNodes(). item(i).getChildNodes().item(j).hasChildNodes())
{
Node Kind = doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).getChildNodes().item(0);
doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).removeChild(Kind);
}
for(int k = 0; k < Nebenwirkungen.size(); k++)
{
Element Krankheit = doc.createElement("Nebenwirkung");
Krankheit.setAttribute("id", (k+1)+"");
Krankheit.setTextContent(Nebenwirkungen.get(k));
doc.getChildNodes().item(0).getChildNodes().item(i ).getChildNodes().item(j).appendChild(Krankheit);
}
}
}
}
}
}
}
dh.SchreibeMedizindaten(doc);
}
public void SpeichereMedizin (String ID){
Document doc = dh.LadeMedizindaten();
if(doc.getChildNodes().item(0).getNodeName().equal s("Medikamente"))
{
Element Medikament = doc.createElement("Medikament");
Medikament.setAttribute("id", ID);
Element Name = doc.createElement("Name");
Name.setTextContent(NameMedikament);
Element Organe = doc.createElement("Organe");
for(int i = 0; i < this.Organe.size(); i++)
{
Element Organ = doc.createElement("Organ");
Organ.setAttribute("id", (i+1) + "");
Organ.setTextContent(this.Organe.get(i));
Organe.appendChild(Organ);
}
Element Wirkungen = doc.createElement("Wirkungen");
for(int i = 0; i < this.Wirkungen.size(); i++)
{
Element Organ = doc.createElement("Wirkung");
Organ.setAttribute("id", (i+1) + "");
Organ.setTextContent(this.Wirkungen.get(i));
Wirkungen.appendChild(Organ);
}
Element Firma = doc.createElement("Firma");
Firma.setTextContent(this.Firma);
Element chemischerName = doc.createElement("chemischer_Name");
chemischerName.setTextContent(this.chemischerName) ;
Element Form = doc.createElement("Form");
Form.setTextContent(this.Form);
Element Nebenwirkungen = doc.createElement("Nebenwirkungen");
for(int i = 0; i < this.Nebenwirkungen.size(); i++)
{
Element Organ = doc.createElement("Nebenwirkung");
Organ.setAttribute("id", (i+1) + "");
Organ.setTextContent(this.Nebenwirkungen.get(i));
Nebenwirkungen.appendChild(Organ);
}
Element Groesse = doc.createElement("Packungsgröße");
Groesse.setTextContent(this.Groesse);
Element Preis = doc.createElement("Preis");
Preis.setTextContent(this.Preis);
Node n = LadeMedizindatenID(ids);
if(n != null){
tmpdoc.getChildNodes().item(0).appendChild(tmpdoc. adoptNode(n));
}
//dh.SchreibeMedizindatentmpSpezial(tmpdoc);
try {
OutputStream pdf = new FileOutputStream("./data/AusgabePDF_Medizin_einzeln.pdf");
Fop fop = FopFactory.newInstance().newFop(MimeConstants.MIME _PDF, pdf);
Source xml = new DOMSource(tmpdoc);
Source xsl = new StreamSource("./data/PDFAusgabe_Medizin_einzeln.xsl");
Result sax = new SAXResult(fop.getDefaultHandler());
Transformer transformer = TransformerFactory.newInstance().newTransformer(xs l);
transformer.transform(xml, sax);
return true;
}
catch (TransformerConfigurationException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (TransformerException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (FOPException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}