# getAtributeValue liefert String mit störenden Steuerzeichen



## Guest (1. Sep 2005)

Hallo ich mache eine Abfrage aus einer XML Datei, die Datei sieht so aus:

```
<?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:

```
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


----------



## Roar (1. Sep 2005)

http://www.java-forum.org/de/viewtopic.php?t=1528


----------



## copper (1. Sep 2005)

oh man so ein billiger Anfängerfehler lol

naja das passiert einmal und nicht wieder

thx man


----------

