我获得到一个xml的字符串现在要从中取出相应信息请问有什么方便快捷的方法吗 最好能给出例子
String xmlstring=
<?xml version="1.0" encoding="UTF8"?>
<login_info code="1" tsession="232133213231">
<user_info>
<mobile>1</mobile>
<login_name>abc</login_name>
<nick_name>aaaa</nick_name>
</user_info>
</login_info> 我要取出 "abc" 存入 loginname 和 "aaaa" 存入 nickname
即: loginname="abc" nickname= "aaaa"
希望给出详细步骤 谢谢!
String xmlstring=
<?xml version="1.0" encoding="UTF8"?>
<login_info code="1" tsession="232133213231">
<user_info>
<mobile>1</mobile>
<login_name>abc</login_name>
<nick_name>aaaa</nick_name>
</user_info>
</login_info> 我要取出 "abc" 存入 loginname 和 "aaaa" 存入 nickname
即: loginname="abc" nickname= "aaaa"
希望给出详细步骤 谢谢!
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
} Document doc = null;
try {
doc = db.parse(xmlstring);// xml地址
} catch (Exception e) {
e.printStackTrace();
}
Element root = doc.getDocumentElement();
NodeList nl = root.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
Node aNode = nl.item(i);
if (aNode.getNodeType() == Node.ELEMENT_NODE) {
if (aNode.getNodeName().equals("user_info")) {
NodeList gnl = aNode.getChildNodes();
for (int j = 0; j < gnl.getLength(); j++) {
Node gNode = gnl.item(j);
if (gNode.getNodeType() == Node.ELEMENT_NODE) {
if (gNode
.getNodeName()
.equals("login_name")) {String userName=getElementText((Element)gNode);//保存userName
}
else if (gNode
.getNodeName()
.equals("nick_name")) {String nickName=getElementText((Element)gNode);//保存userName
}}
}
}
}
/// }和个数你自己调整一下,另一个你照着写一下吧
private String getElementText(Element e) {
NodeList nl = e.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
Node n = nl.item(i);
if (n instanceof org.w3c.dom.Text) {
return n.getNodeValue();
}
}
return "";
}
<?xml version="1.0" encoding="UTF-8"?>
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(xmlstring); Element root = doc.getDocumentElement();
Element item = (Element)root.getElementsByTagName("user_info").item(0);
Element e= (Element)item.getElementsByTagName("login_name").item(0);Text t = (Text)e.getFirstChild();
String codeindex = t.getNodeValue(); Element e1= (Element)item.getElementsByTagName("nick_name").item(0);Text t1 = (Text)e1.getFirstChild();
String codeindex1 = t1.getNodeValue();
另外,提示出错
java.net.MalformedURLException: no protocol: <?xml version="1.0" encoding="UTF-8"?>
<login_info code="0" tsession="6C682C8CC0CA8B6EAD01BFA5DB761818">
<user_info>
<mobile>12345678900</mobile>
<login_name>liul</login_name>
<nick_name>liul</nick_name>
</user_info>
</login_info>
at java.net.URL.<init>(URL.java:537)
at java.net.URL.<init>(URL.java:434)
at java.net.URL.<init>(URL.java:383)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
at com.gtom.wapcms.content.web.subchannel.subLoginAction.execute(subLoginAction.java:87)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at com.gtom.wapcms.content.ousys.web.KeepSessionFilter.doFilterInternal(KeepSessionFilter.java:41)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at com.gtom.utils.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:163)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;另外,你的文件一定是用UltraEditor编辑的,这是它的bug,编码有问题
你现在用写字版打开文件,再保存就可以了
java.net.MalformedURLException: no protocol: <?xml version="1.0" encoding="UTF-8"?><login_info code="0" tsession="2E7E90B28FB0058B3AE90C19C7826F39">
<user_info>
<mobile>12345678900</mobile>
<login_name>liul</login_name>
<nick_name>liul</nick_name>
</user_info>
</login_info>
at java.net.URL.<init>(URL.java:537)
at java.net.URL.<init>(URL.java:434)
at java.net.URL.<init>(URL.java:383)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
尚观—至强的Linux培训专家!