# Mittels Java XML abfragen und nicht die Ausgabe-HTML-Datei



## Str8t (19. Aug 2008)

Hallo zusammen,

ich bin ein kleines Programm am programmieren, was eine XML Datei auslesen soll, die im Browser sonst mittels css sheets optisch aufgebessert wird.

Die Seite lautet:
http://eu.wowarmory.com/character-sheet.xml?r=Eredar&n=Hug

Wenn ich mir dann z.b. in Firefox den Seitenquelltext anschaue, sieht man ein entsprechendes XML Layout.

Wenn ich allerdings diese Seite mittles folgendem kleinen Programm abrufe, erhalte ich nicht die XML Datei sondern die entsprechende HTML Datei, die für das entsprechende Layout sorgt.


```
import java.net.*;
import java.io.*;
import java.util.*;

class test
{
     public static void main( String[] args )
     {
       InputStream is = null;
   
       try
       {
          URL url = new URL( "http://eu.wowarmory.com/character-sheet.xml?r=Eredar&n=Hug" );
          URLConnection con = url.openConnection();
          is = url.openStream();
          String code=( new Scanner( is ).useDelimiter( "\\Z" ).next() );
          System.out.println(code);
       }
       catch ( Exception e ) {
         e.printStackTrace();
       }
       finally {
         if ( is != null )
           try { is.close(); } catch ( IOException e ) { }
       }
     }
   }
```

Habt ihr vlt. eine Idee, wie ich mit dem Javaprogramm diese XML Datei erhalten kann, also nicht die HTML Datei mit den CSS Infos.

Würde mich sehr freuen wenn ihr mit helfen könntet.

Mfg
Str8t


----------



## musiKk (19. Aug 2008)

Ich weiss, ich weiss "mir hat aber keiner geholfen", aber den gleichen Thread ein zweites Mal zu oeffnen (und auch nach erst einem Tag), ist ne Frechheit.


----------



## SlaterB (19. Aug 2008)

die Datei enthält übrigens nicht nur das CSS sondern auch alle Infos, durchsuche sie nach Kennzahlen wie der 412 der Rüstung

falls dich nur diese interessieren, musst du sie nur korrekt extrahieren,
mit etwas Mühe kannst du auch das ganze XML nachbauen, wenns sein muss,

ob man die normale JavaScript-Auswertung eines Browsers manuell ansprechen kann, weiß ich nicht


----------



## kleiner_held (19. Aug 2008)

Anscheinend bereitet der angesprochene Web-Server seine Ausgabe abhaengig vom Typ des anfragenden Browsers auf.
Dazu wird der HTTP Header "User-Agent" interpretiert. 
Folgendes Beispiel unter Verwendung von Apache Commons HTTP-Client 3.1 bringt die von dir gewuenschte Ausgabe, wenn man sich als Mozilla Firefox ausgibt:

```
public class ConnectionTest 
{
	public static void main(String[] args)
	{
		try 
		{
			HttpClient client = new HttpClient();
			GetMethod method = new GetMethod("http://eu.wowarmory.com/character-sheet.xml?r=Eredar&n=Hug");
			HttpMethodParams params = method.getParams();
			params.setParameter("http.useragent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15");
			method.setParams(params);
			int result = client.executeMethod(method);
			System.out.println(result);

			InputStream  is = method.getResponseBodyAsStream();
			BufferedReader reader = new BufferedReader(new InputStreamReader(is));
			String line = null;
			while ((line = reader.readLine()) != null) 
			{	
				System.out.println(line);
			}
			method.releaseConnection();
		} 
		catch (Exception e) 
		{
			e.printStackTrace();
		}
	}
}
```


----------



## Str8t (20. Aug 2008)

Hallo zusammen,

ersteinmal vielen vielen Dank für eure Hilfe. 
Mit eurer Hilfe bin ich weiter gekommen 



> Ich weiss, ich weiss "mir hat aber keiner geholfen", aber den gleichen Thread ein zweites Mal zu oeffnen (und auch nach erst einem Tag), ist ne Frechheit.



Ich möchte mich dafür entschuldigen. Leider habe ich den ersten Beitrag im XML Bereich geschrieben, da ich gedacht habe, dass es sich um ein XML Problem handelt. Nachdem ich dann gemerkt habe, das es wohl eher was mit der Abfrage zu tun hat, wollte ich den Beitrag verschieben, leider geht das als nicht registrierter Nutzer nicht 

Daher habe ich, ohne böse Absicht, den Beitrag nochmal im Netzwerk Bereich gepostet.
Wenn ich jemanden damit verärgert haben sollte bitte ich um entschuldigung.
Ich bitte dann einen Moderator meinen Beitrag im XML Bereich zu löschen.

Mfg
Str8t


----------



## SlaterB (20. Aug 2008)

> leider geht das als nicht registrierter Nutzer nicht 

für die Zukunft: du kannst aber trotzdem hier manuell mit deutschen Worten auf das andere Topic verweisen/ 
dort vielleicht 'bitte nicht mehr antworten' posten 
usw.


----------

