P
so ich bedanke mich rechtherzlich für eure hilfe
es funktioniert *gg*
ich post ncohmal den gesamten code damit ihr wisst was ich genau gemacht hab
aja falls ein kommentar falsch ist würd mich freuen wenn ihr das postets. Dann weiss ich das ich da was nicht richtig verstanden hab.
Auf jedenfall schau ich mir nochmal genau die funktionsweise des DOM an, ich glaub da liegt mein hauptproblem.
folgende methode wird im main aufgerufen:
public int getSensAnz(int nrElem)
{
/*Parst das Document (ganzes XML-File) in Element (zb. gesAnlage)*/
Node node = ((Document)document).getDocumentElement();
String ElementenNummer = String.valueOf(nrElem);
scanDOMTree.ANZ_SENS(node,ElementenNummer);
return (scanDOMTree.sens);
}
folgendes ist ne methodeaus einer zwischenklasse da ich mir nicht anders zu helfen wusste:
static public void ANZ_SENS (Node node,String nrElem)
{
/*Attribute durchsuchen um gewünschtes Element zu finden!*/
NamedNodeMap attrs = node.getAttributes();
if(attrs != null)
{
if(attrs.getLength() != 0)
{
Node attr = attrs.item(0);
nodevalue = attr.getNodeValue();
}
}
/*Wenn Attribut mit gewünschten Element übereinstimmt mach folgendens:*/
if (nodevalue.equals(nrElem))
{
/*Druchsuche das kompletet Element (zb.; exx*/
for (int l = 0; l < node.getChildNodes().getLength(); l++)
{
/*Elemente(sensoren,motor) des Elements (exx) durchsuchen!*/
Node childnode = node.getChildNodes().item(l);
/*Textknoten auslassen, da sie sonst mitgezählt werden (^= zählfehler)*/
if (childnode.getNodeType() == Node.TEXT_NODE)
continue;
else
{
for (int k = 0; k < childnode.getChildNodes().getLength(); k++)
{
if (childnode.getChildNodes().item(k).getNodeType() != Node.TEXT_NODE)
{
/*Nur die Sensoren abzählen, ansonsten würde motor auch mitgezählt werden!*/
if(childnode.getNodeName() == "sensoren")
{
sens++;
}
}
}
}
}
}
else
{
NodeList child = node.getChildNodes();
for(int i=0;i<child.getLength();i++)
ANZ_SENS(child.item(i),nrElem);
}
}
also nochmals vielen vielen dank für eure hilfe!!