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");
    }
   } 
  }
 }
}
