xml字符串解析java
1. 求教大神,我新建的java webservice 从客户端传过来的xml格式字符串 怎么解析
如果是你自己练手,怎么解析都可以,dom什么的,甚至可以自己从字符串里读取需要的内容。
实际应用中,我是这样做的:
1 定义 .xsd 文件,就是xml的定义文件。
2 服务器端 用jaxb把  .xsd 文件转换成 .java 文件。
3 把 .xsd 给客户端,客户端自己转换成 .java 文件。(或者直接把 .java 文件给客户端)
4 客户端用.java 文件产生 object,然后set方法把object的内容添满。
5 客户端 Jaxb Unmarshaller object 得到xml,这个xml通过webService传到server。
6 服务器得到xml, Jaxb Marshaller xml 得到  object。
7 服务器处理 object。
2. java 解析 xml字符串 取子节点数值
使用dom4j吧
大致的代码是:
Document doc = DocumentHelper.parseText(sss);
Element root = doc.getRoot();//或许是doc.rootElement();,这里获取到的是process节点
Iterator<?> iter = root.elementIterator("task");//这里是task节点的迭代器,因为有多个task,所以使用迭代器,如果是一个节点的话,就使用root.element("task')就行了
while(iter.hasNext()) {
    Element e = iter.next();//这里遍历task节点
    String bb = e.attributeValue("bb");//你要的bb的值,不知道是attributeText()还是attributeValue(),记不清了。。。自己试试吧
}
3. java如何解析xml格式的字符串
使用dom4j,在网络下搜一个dom4j包,然后在网上找个例子看dom4j操作xml的使用方法,很简单的。
4. java 解析一个xml链接怎么解析
先从连接里读取出字符串,然后按后边方法解析。
String XML;//要解析的XML字符串
//将字符串转化为UTF-8格式的字节形式,这里的UTF-8不能省略,否则可能会报如下错误: [Fatal Error] :1:327: Invalid byte 1 of 1-byte UTF-8 sequence
InputStream is=new ByteArrayInputStream(XML.getBytes("UTF-8"));
接下来就可以解析了
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder=factory.newDocumentBuilder(); 
Document doc = builder.parse(is);
5. java解析XML字符串
你这种写法标签都已经关闭了,当然用getText()获取不到标签内的文本节点的值了.
注意,<a/> 这个标签已经关闭了.你要获取它后面的值,只能通过<p>节点来遍历了,
解决方法:<a value="a1" /> ,另外如果没解决,最好把源代码发下来看下
6. 在Java中如何读取XML字符串的元素值
java读取xml节点元素,主要使用java提供的解析xml的工具类SAXParserFactory,如下代码:
package xml.xmlreader;import java.io.File;import java.net.URL;import java.util.Properties;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;public class CFGParser {//解析xml文件的工具类    private Properties props;     public Properties getProps() {        return props;    }    public void setProps(Properties props) {        this.props = props;    }     public void parse(String filename) throws Exception    {        CFGHandler handler = new CFGHandler();         SAXParserFactory factory = SAXParserFactory.newInstance();        factory.setNamespaceAware(false);        factory.setValidating(false);         SAXParser parser = factory.newSAXParser();         URL confURL = super.getClass().getClassLoader().getResource(filename);        if (confURL == null) {            System.out.println("Can't find configration file.");            return;        }        try        {            parser.parse(confURL.toString(), handler);            this.props = handler.getProps();        }        finally {            factory = null;            parser = null;            handler = null;        }    }     public void parseFile(String filename)    throws Exception    {        CFGHandler handler = new CFGHandler();         SAXParserFactory factory = SAXParserFactory.newInstance();        factory.setNamespaceAware(false);        factory.setValidating(false);        SAXParser parser = factory.newSAXParser();          File f = new File(filename);        if ((f == null) || (!f.exists()))            return;        try        {            parser.parse(f, handler);              this.props = handler.getProps();        }        finally {            factory = null;            parser = null;            handler = null;        }    }}package xml.xmlreader;import java.util.Properties;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler; public class CFGHandler extends DefaultHandler{  private Properties props;  private String currentSet;  private String currentName;  private StringBuffer currentValue = new StringBuffer();   public CFGHandler()  {    this.props = new Properties();  }   public Properties getProps() {    return this.props;  }   public void startElement(String uri, String localName, String qName, Attributes attributes)    throws SAXException  {    this.currentValue.delete(0, this.currentValue.length());    this.currentName = qName;  }   public void characters(char[] ch, int start, int length) throws SAXException  {    this.currentValue.append(ch, start, length);  }   public void endElement(String uri, String localName, String qName)    throws SAXException  {    this.props.put(qName.toLowerCase(), this.currentValue.toString().trim());  }}xml文件  <?xml version="1.0" encoding="UTF-8"?><xml-body>        <refresh_userlist desc="用户列表刷新间隔时间(秒)">6</refresh_userlist>        <refresh_message desc="短消息刷新间隔时间(秒)">10</refresh_message>        <morningbegin desc="上午上班时间">23:00</morningbegin>        <morningend desc="上午下班时间">12:00</morningend>        <afternoonbegin desc="下午上班时间">18:00</afternoonbegin></xml-body>jsp获取各个节点的值:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html>    <jsp:useBean id="cfgp" scope="page" class="xml.xmlreader.CFGParser"></jsp:useBean>    <body>        <%   cfgp.parse("kaoqin.xml");   Properties pro = cfgp.getProps();   String stTime = pro.getProperty("morningbegin");   String edTime = pro.getProperty("morningend");    String afternoonbegin = pro.getProperty("afternoonbegin");       out.println(stTime+"\n"+edTime+"\n"+afternoonbegin);   System.out.println(stTime+"\n"+edTime+"\n"+afternoonbegin);    %>    </body></html>
7. java 解析xml格式的字符串
给你讲下思路,就是通过name找到key这个节点,通过key节点获得key节点的父节点也就是Item
再通过Item获取它子节点Value   获得Value了就获得它的文本值就行 具体代码得翻翻笔记了,现在真敲不出来.
8. java xml格式字符串解析
package test;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
/**
 * 使用JDOM实现XML解析,jar包:jdom-2.0.5.jar
 * @author zhurongfu
 *
 */
public class JdomTest {
public static void parseXml (File file) throws JDOMException, IOException{
SAXBuilder sax = new SAXBuilder();
Document doc = sax.build(file);
Element root = doc.getRootElement();
parseElement(root);
}
private static void parseElement(Element element) {
// TODO Auto-generated method stub
List<Element> elementList = element.getChildren();
for(Element e:elementList){
if(e.getChildren().size() > 0){
parseElement(e);
}else {
String elementName = e.getName();
if("id".equals(elementName)){
System.out.println("a的值为:"+e.getValue());
}else if("destaddr".equals(elementName)) {
System.out.println("b的值为:"+e.getValue());
}else if("status".equals(elementName)){
System.out.println("c的值为:"+e.getValue());
}
}
}
}
public static void main(String[] args) throws JDOMException, IOException {
// TODO Auto-generated method stub
File file = new File("test.xml");
parseXml(file);
}
}
9. Java解析XML字符串
使用第三发组件,我用的是dom4j.jar
代码如下:
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class TestArray{
 private File file;
 public TestArray(File file){
  this.file=file;
 }
 public void read() throws DocumentException{
  //获得解析器
  SAXReader sr = new SAXReader();
  //解析xml文件
  Document doc = sr.read(file);
  //获得xml根元素
  Element root = doc.getRootElement();
  //获得根元素迭代器
  Iterator<Element> ir = root.elementIterator();
  //迭代根元素,看根元素下有哪些其他元素
  while (ir.hasNext()) {
   //第一个元素
   Element element = (Element) ir.next();
   //判断是哪个元素,方法应该没用错,错了就不好意思了
   if(element.getName().equals("flag")){
    //获取此元素属性值
    String code = element.attributeValue("code");
    String msg = element.attributeValue("msg");
   }else{
    String totalCount = element.attributeValue("totalCount");
    Iterator<Element> ir1 = element.elementIterator();
    //如果此元素下还有别的元素,则继续迭代
    while(ir1.hasNext()){
     Element commentary = (Element) ir1.next();
     String type = commentary.attributeValue("type");
    }
   } 
  }
 }
}
