G
Guest
Gast
Hallo ich mache eine Abfrage aus einer XML Datei, die Datei sieht so aus:
Hier der Java code für die Abfrage:
Das ganze soll also den inhalt des Tags VALUE, bei dem des Atribut KEY mit dem Wert FILE vorhanden ist,
auf test setzen. Die Atributwerte werden eingelesen und auch ausgegeben. Allerdings wird die IF Anweisung immer übersprungen, obwohl Atributwerte FILE vorhanden sind.
Ein Test, bei dem ich alle Werte der Atribute KEY nochmals vor der IF Anweisung auf FILE setze hat ergeben, dass dann die IF Anweisung nicht übersprungen wird. (hier ist die Anweisung für das Setzen der Atributwerte auskommentiert und eingerückt)
Also müssen doch irgendwelche Steuerzeichen mit eingelesen werden. ODER?
Wie kann ich diese entfernen?
thx für die Antworten
Code:
<?xml version="1.0" encoding="UTF-8" ?>
- <test-Layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <page priority="0" keyset="ALL" initialFocusedComponentID="Canvas" history="true" type="page" version="20999" pageID="0">
<geometry x="0" y="0" width="720" height="576" />
- <component class="Canvas" name="Canvas">
<geometry x="0" y="400" width="720" height="110" />
- <param>
- <default>
<value key="roundarc">0</value>
<value key="bgcolor">#ffffffff</value>
<value key="frame">0, #ff000000</value>
</default>
- <focused>
<value key="roundarc">0</value>
<value key="bgcolor">#ffffffff</value>
<value key="frame">0, #ff000000</value>
</focused>
- <pressed>
<value key="roundarc">0</value>
<value key="bgcolor">#ffffffff</value>
<value key="frame">0, #ff000000</value>
</pressed>
- <disabled>
<value key="roundarc">0</value>
<value key="bgcolor">#ffffffff</value>
<value key="frame">0, #ff000000</value>
</disabled>
</param>
- <control componentID="Canvas">
- <focus>
<navigation eventID="VK_COLORED_KEY_3">100</navigation>
</focus>
</control>
</component>
- <component class="Picture" name="Picture">
<geometry x="99" y="404" width="270" height="98" />
- <param>
- <default>
<value key="cachable">static</value>
<value key="color">#ff000000</value>
<value key="file">../resources/Picture/testClutLogo.png</value>
<value key="frame">0, #ff000000</value>
</default>
.
.
.
.
.
Hier der Java code für die Abfrage:
Code:
SAXBuilder builder = new SAXBuilder();
FileInputStream in = new FileInputStream("e:/pages/0.jdl");
Document doc = builder.build(in);
XPath abfrage = XPath.newInstance("//*[name()='value']");
java.util.List list = abfrage.selectNodes(doc);
System.out.println(list.size());
for(int i=0;i<list.size();++i){
Element element = (org.jdom.Element) list.get(i);
//element.setAttribute("key","file");
String s = element.getAttributeValue("key");
System.out.println(s);
if("file"==s){
element.setText("test");
System.out.println("hallo");
}
}
FileOutputStream out = new FileOutputStream("e:/pages/0geandert.jdl");
XMLOutputter serializer = new XMLOutputter();
//serializer.output(doc,System.out);
serializer.output(doc, out);
out.flush();
out.close();
}
catch(Exception e) {
System.out.println(e);
}
}
Das ganze soll also den inhalt des Tags VALUE, bei dem des Atribut KEY mit dem Wert FILE vorhanden ist,
auf test setzen. Die Atributwerte werden eingelesen und auch ausgegeben. Allerdings wird die IF Anweisung immer übersprungen, obwohl Atributwerte FILE vorhanden sind.
Ein Test, bei dem ich alle Werte der Atribute KEY nochmals vor der IF Anweisung auf FILE setze hat ergeben, dass dann die IF Anweisung nicht übersprungen wird. (hier ist die Anweisung für das Setzen der Atributwerte auskommentiert und eingerückt)
Also müssen doch irgendwelche Steuerzeichen mit eingelesen werden. ODER?
Wie kann ich diese entfernen?
thx für die Antworten