如何从xml响应中检索字段

时间:2017-01-13 14:49:51

标签: java xml xml-parsing

我有以下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库处理此响应并从字段中获取信息?

2 个答案:

答案 0 :(得分:1)

您需要DOM Parser。

DOM解析器解析整个XML文档并将其加载到内存中;然后以“TREE”结构对其进行建模,以便于遍历或操作。

参见此处的示例:

https://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/

答案 1 :(得分:0)

我使用的是JDOM2。 这很容易操纵:https://github.com/hunterhacker/jdom/wiki/JDOM2-A-Primer