xml file lesen

newlive

Grünschnabel
Hi alle,
ich will bitte gerne von meinem xml datei der parameter “xsi:type” und namespace mit java lesen, ich habe schon im web gesucht aber ist nix da :-(, weißt jemand wie ich das machen soll?

XML_data:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<SOAP-ENV:Envelope
...............................>

<SOAP-ENV:Body> 
<param2>
<param0 xsi:type="ns1: MySoapServices " xmlns:ns1="http://www.ebay.de/test/">
<param1 xsi:type="xsd:int">123</param1>
</param0>

</param2>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

die ergebnisse was ich genau will ist folgendes:

xsi:type = “MySoapServices”

ns1= “http://www.ebay.de/test;

danke
 
Hi alle,
ich habe für mein problem weiter gesucht aber alles was ich gefunden habe war nicht über namespace :-(
Ich arbeite dann mit XPathFactory

danke
 
Hi, also mein code sieht jetzt so aus:
Code:
import org.jdom.*;
import org.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
// Klassendeklaration usw ausgelassen

SAXBuilder sxbuild 
     = new SAXBuilder();
InputSource is 
     = new InputSource(path);
Document doc = sxbuild.build(is);
Element root = doc.getRootElement();
String getNamespacePrefix = root.getNamespacePrefix();
String getNamespaceURI = root.getNamespaceURI();
System.out.println(getNamespacePrefix);
System.out.println(getNamespaceURI);
Ergebnisse von dem XML_Data:

Code:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<soapenv:Envelope xmlns:soapenv="http://blabla/" xmlns:xsd="jhjehvjedh/" xmlns:xsi="egalwas">

<SOAP-ENV:Body> 
<param2>
<param0 xsi:type="ns1: MySoapServices " xmlns:ns1="http://www.ebay.de/test/">
<param1 xsi:type="xsd:int">123</param1>
</param0>

</param2>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

was ich bekommen habe von meinem code ist:

getNamespacePrefix: soapenv
getNamespaceURI: http://blabla/

aber was ich will ist :
xsi:type = “MySoapServices”

xmlns:ns1= “http://www.ebay.de/test;

ich habe wirklich null ahnung mehr :-(
 
Du kannst Dir den Namespace entweder händisch erzeugen:
Java:
   Namespace ns = Namespace.getNamespace("xsi","egalwas");
und dann auf ein Element per
Java:
element.getAttributeValue("getAttributeValue",ns);
zugreifen.

Oder Dir alle Namespaces vom root Element geben lassen:
Java:
  root.getAdditionalNamespaces();

Gruß
 
danke für die schnelle antwort.

Was ich mit dem code
Code:
      Namespace ns = Namespace.getNamespace("xsi","egalwas"); 
    element.getAttributeValue("getAttributeValue",ns); 
//oder...
    root.getAdditionalNamespaces()
bekomme, das war für mich auch klar :) aber mit dem code ich kann immer noch die knote soapenv:Envelope zugreifen.
was ich genau will ist die param0 zugreifen und die xsi:type und xmlns:ns1 als output haben können

danke
 
ich habe versucht auf das Element direkt zugreifen:
Code:
SAXBuilder sxbuild = new SAXBuilder(); 
InputSource is = new InputSource(path); 
Document doc = sxbuild.build(is); 
Element node = doc.getElementsByTagName("param0").item(0);

aber mein Programm kennt die methode "getElementsByTagName" nicht.

kann jemand bitte mich weiter helfen?

danke
 
Zurück