我要写一个方法用
WebService测试
对XML解析 传参数XmlDocument  xml
以前没有接触过具体的XML解析
想对这些了解下
请大家随便说说
感激不尽   感激不尽javacode:
public class WebServiceDemo {
  public WebServiceDemo() {
  }
  public XmlDocument notifyGather(XmlDocument xml)
  {
    return null;
  }
}

解决方案 »

  1.   

    我给你提供一个解析xml的实例,看你可不可以把他套到你的方法里了,实际上解析xml核心只有7步:
    1.得到DOM解析器的工厂实例
    2.从DOM工厂获得DOM解析器
    3.把要解析的XML文档转化为输入流,以便DOM解析器解析它(也可以用File来处理)
    4.解析XML文档的输入流,得到一个Document
    5.得到XML文档的根节点
    6.得到节点的子节点(5,6两步也可以像我例子中那样直接得到需要遍历的子节点,根据实际情况灵活应变)
    7.循环遍历子节点,获得其属性值
    到此解析完毕,xml文档解析博大精深,呵呵,应对方法也有很多,我提供的是最基础的dom解析,希望有用!
    package test1;import java.io.*;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.TransformerException;import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;import com.sun.org.apache.xpath.internal.XPathAPI;public class csdntest2 {
         public csdntest2(){  
          DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
          @SuppressWarnings("unused")
    String Person_id = "";
          @SuppressWarnings({ "unused", "unused" })
    String Team_id = "";
          @SuppressWarnings("unused")
    String Player_status = "";
          @SuppressWarnings("unused")
    String First_name = "";
          @SuppressWarnings("unused")
    String Last_name = "";
          @SuppressWarnings("unused")
    String Jersey_number = "";
          @SuppressWarnings("unused")
    String Birth_date = "";
          @SuppressWarnings("unused")
    String Height = "";
          @SuppressWarnings("unused")
    String Weight = "";
          @SuppressWarnings("unused")
    String Position = "";
          @SuppressWarnings("unused")
    String School = "";
          @SuppressWarnings("unused")
    String DraftYear = "";
          @SuppressWarnings("unused")
    String PlayerCode = "";
          
          PrintWriter pw = null;
          try {
          File file = new File("d:/nba_rosters.txt");
          if(!file.exists())
          file.createNewFile();
          pw = new PrintWriter(new FileOutputStream("d:/nba_rosters.txt",true));             DocumentBuilder dombuilder=domfac.newDocumentBuilder();
                 InputStream is=new FileInputStream("d:/nba_rosters.xml");
                 Document doc = dombuilder.parse(is);
                 NodeList Player_info = XPathAPI.selectNodeList(doc.getDocumentElement(), "/Msg_file/Game/Msg_Roster/Player_info");
                 if(Player_info!=null){
                  System.out.println("("+Player_info.getLength()+")");
                 for(int i = 0;i < Player_info.getLength();i ++){
                     Node Player = Player_info.item(i);
                     Person_id = Player.getAttributes().getNamedItem("Person_id").getNodeValue();
                     Team_id = Player.getAttributes().getNamedItem("Team_id").getNodeValue();
                     Player_status = Player.getAttributes().getNamedItem("Player_status").getNodeValue();
                     First_name = Player.getAttributes().getNamedItem("First_name").getNodeValue();
                     Last_name = Player.getAttributes().getNamedItem("Last_name").getNodeValue();
                     Jersey_number = Player.getAttributes().getNamedItem("Jersey_number").getNodeValue();
                     Birth_date = Player.getAttributes().getNamedItem("Birth_date").getNodeValue();
                     Height = Player.getAttributes().getNamedItem("Height").getNodeValue();
                     Weight = Player.getAttributes().getNamedItem("Weight").getNodeValue();
                     Position = Player.getAttributes().getNamedItem("Position").getNodeValue();
                     School = Player.getAttributes().getNamedItem("School").getNodeValue();
                     DraftYear = Player.getAttributes().getNamedItem("DraftYear").getNodeValue();
                     PlayerCode = Player.getAttributes().getNamedItem("PlayerCode").getNodeValue();
                     
              pw.println(Person_id);
           }
                  pw.close();
        }
               } catch (ParserConfigurationException e) {
                      e.printStackTrace();
               } catch (FileNotFoundException e) {
                      e.printStackTrace();
               } catch (SAXException e) {
                      e.printStackTrace();
               } catch (IOException e) {
                      e.printStackTrace();
               } catch (TransformerException e) {
                   e.printStackTrace();
           }
               
       finally{
      if(pw != null)
      pw.close();
       }
               
        }
        public static void main(String[] args) {
               new csdntest2();
        }
     }
    以上提供了解析的xml原文件,和负责解析的java源码.xml文档有些冗余,我删掉了一部分,没办法,希望能对你有帮助!
      

  2.   

    - <Msg_file>
    - <Game Number="0">
    - <Msg_Roster>
      <Player_info Person_id="1710" Team_id="1610612737" Player_status="A" First_name="Mike" Last_name="Bibby" Jersey_number="10" Birth_date="May 13, 1978" Height="6'1"" Weight="190" Position="G" School="Arizona" DraftYear="1998" PlayerCode="mike_bibby" />  
      <Player_info Person_id="980" Team_id="1610612739" Player_status="A" First_name="Zydrunas" Last_name="Ilgauskas" Jersey_number="11" Birth_date="June 05, 1975" Height="7'3"" Weight="260" Position="C" School="Lithuania" DraftYear="1996" PlayerCode="zydrunas_ilgauskas" /> 
      <Player_info Person_id="201616" Team_id="1610612739" Player_status="A" First_name="Darnell" Last_name="Jackson" Jersey_number="00" Birth_date="November 07, 1985" Height="6'8"" Weight="250" Position="F" School="Kansas" DraftYear="2008" PlayerCode="darnell_jackson" /> 
      <Player_info Person_id="956" Team_id="1610612742" Player_status="A" First_name="Erick" Last_name="Dampier" Jersey_number="25" Birth_date="July 14, 1975" Height="6'11"" Weight="265" Position="C" School="Mississippi State" DraftYear="1996" PlayerCode="erick_dampier" /> 
      <Player_info Person_id="2205" Team_id="1610612742" Player_status="A" First_name="DeSagana" Last_name="Diop" Jersey_number="" Birth_date="January 30, 1982" Height="7'0"" Weight="280" Position="C" School="" DraftYear="0" PlayerCode="desagana_diop" /> 
      <Player_info Person_id="201615" Team_id="1610612742" Player_status="A" First_name="Shan" Last_name="Foster" Jersey_number="" Birth_date="August 20, 1986" Height="6'6"" Weight="205" Position="G" School="Vanderbilt" DraftYear="2008" PlayerCode="shan_foster" /> 
      <Player_info Person_id="1904" Team_id="1610612742" Player_status="A" First_name="Devean" Last_name="George" Jersey_number="40" Birth_date="August 29, 1977" Height="6'8"" Weight="235" Position="F-G" School="Augsburg" DraftYear="1999" PlayerCode="devean_george" /> 
      <Player_info Person_id="101123" Team_id="1610612742" Player_status="A" First_name="Gerald" Last_name="Green" Jersey_number="" Birth_date="January 26, 1986" Height="6'8"" Weight="200" Position="G" School="Gulf Shores Aca. (TX)" DraftYear="" PlayerCode="gerald_green" /> 
      <Player_info Person_id="2572" Team_id="1610612742" Player_status="A" First_name="Josh" Last_name="Howard" Jersey_number="5" Birth_date="April 28, 1980" Height="6'5"" Weight="210" Position="F-G" School="Wake Forest" DraftYear="2003" PlayerCode="josh_howard" /> 
      <Player_info Person_id="436" Team_id="1610612742" Player_status="A" First_name="Juwan" Last_name="Howard" Jersey_number="55" Birth_date="February 07, 1973" Height="6'9"" Weight="253" Position="F" School="Michigan" DraftYear="1994" PlayerCode="juwan_howard" /> 
      <Player_info Person_id="224" Team_id="1610612742" Player_status="A" First_name="Eddie" Last_name="Jones" Jersey_number="6" Birth_date="October 20, 1971" Height="6'6"" Weight="200" Position="G-F" School="Temple" DraftYear="1994" PlayerCode="eddie_jones" /> 
      <Player_info Person_id="467" Team_id="1610612742" Player_status="A" First_name="Jason" Last_name="Kidd" Jersey_number="2" Birth_date="March 23, 1973" Height="6'4"" Weight="210" Position="G" School="California" DraftYear="1994" PlayerCode="jason_kidd" /> 
      <Player_info Person_id="2048" Team_id="1610612742" Player_status="A" First_name="Jamaal" Last_name="Magloire" Jersey_number="20" Birth_date="May 21, 1978" Height="6'11"" Weight="265" Position="C" School="Kentucky" DraftYear="2000" PlayerCode="jamaal_magloire" /> 
      <Player_info Person_id="1717" Team_id="1610612742" Player_status="A" First_name="Dirk" Last_name="Nowitzki" Jersey_number="41" Birth_date="June 19, 1978" Height="7'0"" Weight="245" Position="F" School="Germany" DraftYear="1998" PlayerCode="dirk_nowitzki" /> 
      <Player_info Person_id="711" Team_id="1610612742" Player_status="A" First_name="Jerry" Last_name="Stackhouse" Jersey_number="42" Birth_date="November 05, 1974" Height="6'6"" Weight="218" Position="G-F" School="North Carolina" DraftYear="1995" PlayerCode="jerry_stackhouse" /> 
      <Player_info Person_id="1891" Team_id="1610612742" Player_status="A" First_name="Jason" Last_name="Terry" Jersey_number="31" Birth_date="September 15, 1977" Height="6'2"" Weight="180" Position="G" School="Arizona" DraftYear="1999" PlayerCode="jason_terry" /> 
      <Player_info Person_id="101120" Team_id="1610612742" Player_status="A" First_name="Antoine" Last_name="Wright" Jersey_number="21" Birth_date="February 06, 1984" Height="6'7"" Weight="215" Position="G-F" School="Texas A&M" DraftYear="2005" PlayerCode="antoine_wright" /> 
      <Player_info Person_id="2365" Team_id="1610612743" Player_status="A" First_name="Chris" Last_name="Andersen" Jersey_number="11" Birth_date="July 07, 1978" Height="6'10"" Weight="228" Position="F-C" School="Blinn J.C." DraftYear="1999" PlayerCode="chris_andersen" /> 
      <Player_info Person_id="2546" Team_id="1610612743" Player_status="A" First_name="Carmelo" Last_name="Anthony" Jersey_number="15" Birth_date="May 29, 1984" Height="6'8"" Weight="230" Position="F" School="Syracuse" DraftYear="2003" PlayerCode="carmelo_anthony" /> 
      <Player_info Person_id="1088" Team_id="1610612743" Player_status="A" First_name="Chucky" Last_name="Atkins" Jersey_number="12" Birth_date="August 14, 1974" Height="5'11"" Weight="185" Position="G" School="South Florida" DraftYear="1996" PlayerCode="chucky_atkins" /> 
      </Msg_Roster>
      </Game>
      </Msg_file>
      

  3.   

    解析XML可以不要讨论了,下面的可以说说 对 web service 的认识嘛
      

  4.   

    那就不知道了,网上查查吧,归根结底不是还是解析xml吗?
      

  5.   

    向楼主推荐此文章,有一些介绍。
    http://www.shineblog.com/user4/wujia841028/archives/2006/594302.shtml