2017-01-13 6 views
0

Я следующий ответ XML:как извлекать поля из ответа XML

String response = 
+"<saml:AuthnStatement AuthnInstant=\"2016-12-14T12:22:26Z\" SessionIndex=\"s2f1ae3bd7397f10c6fd6b3b3f02d8b0611b2da501\">" 
+"<saml:AuthnContext>" 
+"<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>" 
        +"</saml:AuthnContext>" 
       +"</saml:AuthnStatement>" 
       +"<saml:AttributeStatement>"    
        +"<saml:Attribute Name=\"uid\">" 
        +"<saml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xs:string\">testing1</saml:AttributeValue>" 
        +"</saml:Attribute>" 
        +"<saml:Attribute Name=\"SecurityLevel\">" 
        +"<saml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xs:string\">testing2</saml:AttributeValue>" 
        +"</saml:Attribute>" 
        +"<saml:Attribute Name=\"Culture\">" 
        +"<saml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xs:string\">testing3</saml:AttributeValue>" 
        +"</saml:Attribute>" 
        +"<saml:Attribute Name=\"AuthMethod\">" 
        +"<saml:AttributeValue xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xs:string\">testing4</saml:AttributeValue>" 
        +"</saml:Attribute>" 
       +"</saml:AttributeStatement>" 
      +"</saml:Assertion>"; 

Используя обычные строковые функции, подстроки, длина, я могу извлечь данные из полей. Но это долгий и неудобный процесс.

Как я могу обработать этот ответ с помощью некоторых java-библиотек и получить информацию от полей?

+0

Вы можете использовать библиотеку OpenSAML для обработки сообщений SAML. Вы можете найти документацию по [здесь] (https://wiki.shibboleth.net/confluence/display/OpenSAML/Home) – nille85

ответ