2014-02-01 1 views
1

Здравствуйте, я этот кодКак оставаться JDOM символ службы от Ouput

Document rootElement = saxBuilder.build(inputXML); 
     Element element = rootElement.getRootElement(); 

     Namespace ns = Namespace.getNamespace("http://schemas.xmlsoap.org/soap/envelope/"); 
     Element e = element.getChild("Body", ns); 

     Format format=Format.getCompactFormat(); 

     List listAttributrBody = e.getChildren(); 
     String element2 = listAttributrBody.get(0).toString(); 
     System.out.print(element2); 
     InputStream propfile = new     


    FileInputStream("/home/igor/IdeaProjects/jdomtest/src/main/resources/properties.xml"); 
     Properties properties = new Properties(); 
     properties.load(propfile); 
     String pathToOutput=properties.getProperty(element2); 
     //System.out.println(pathToOutput); 

И это Ouput так:

[Element: <Action__CompIntfc__CIName/>] 

но я нужен только ясный Action_ CompIntfc _CIName

ответ

1

Чтобы получить имя тега xml, вы должны это изменить:

List listAttributrBody = e.getChildren(); 
    String element2 = listAttributrBody.get(0).toString(); 

Для этого:

List<Element> listAttributrBody = e.getChildren(); 
    String element2 = listAttributrBody.get(0).getName(); 

Если вы используете старую версию (1.1) вы не разрешено использовать дженерики(), то вы должны сделать это:

List listAttributrBody = e.getChildren(); 
    Element el2 = (Element)listAttributrBody.get(0); 
    String element2 = el2.getName(); 

Вы можете прочитать больше о доступных методах в jdom api

+0

Но я не могу заменить его, потому что getName() в этом объекте не поддерживается – igor29

+0

Какую версию jdom вы используете? Я просто заметил, что вы не используете дженерики и, вероятно, вы пытаетесь получить доступ к этому свойству на объекте, а не в элементе. Я обновил свой ответ. – jonasnas

+0

Спасибо, я обновляю maven depedency на jdom2, и ваше решение работает. – igor29