我现在的做法是完全把返回过来的字符串当成字符串来处理,用操作字符串的方法操作截取,
但这样如果数据多的话 感觉复杂,网上看了下没看明白具体如何操作返回过来的xmlString,
我现在的项目数据全部来源于webservice,所以找到一种合适的方式很关键,期待各位的帮助...3.9 获取公告列表
3.9.1 功能说明
获取公告列表3.9.2 接口说明
上行报文:
<?xml version="1.0" encoding="UTF-8"?>
<INTF>
   <OPER_INFO>
        <OP_ID></OP_ID><!--必填->
        <PASSWORD></PASSWORD ><!--必填:操作员密码,明文-->
</OPER_INFO >
<INTF_PARAMS>
<INTF_CODE></INTF_CODE> <!--必填,1007 -->
        <AGENT_ID></AGENT_ID><!—代理商ID-->
        <PAGE></PAGE><!—页数,当前页:0-->
    <INTF_PARAMS>
</INTF> 下行报文:
<?xml version='1.0' encoding='UTF-8'?>
<INTF>
<RET_INFO>
<NOTE_INFO></NOTE_INFO><!— ID#公告标题#公告时间 -->?这里返回的话,涉及到分页,是否还要有公告总条数
</RET_INFO >
<ERR_INFO>
        <ERROR_CODE></ERROR_CODE><!--错误代码 0成功-->
<ERROR_MSG></ERROR_MSG><!--错误信息 -->
    <ERROR_HINT></ERROR_HINT><!--提示信息-->
</ERR_INFO></INTF>

解决方案 »

  1.   

    我是想找一种合理高校的方案,是直接操作这个xml格式的字符串,还是先把它写入到xml文件,再对该xml文件进行解析...
      

  2.   

    直接操作字符串么,写成xml再读多此一举?
      

  3.   

    字符串可以包装成StringReader或者 CharArrayReader使用,没必要先写到文件再处理。
      

  4.   

    你这个确定是webservice么?怎么没看到SOAP报文呢,webservice是不需要你自己处理xml报文的,由工具根据wsdl生成客户端代码,直接调用生成的客户端里的服务方法就行了
      

  5.   

    如果只想解析数据出来,使用XPath或者XQJ最简单了。
      

  6.   


    我的就是webService ,现在的问题是,我调用webserivice方法,获取到了一个xmlString 字符串,这个字符串是xml格式的,譬如:
    <?xml version='1.0' encoding='UTF-8'?>
    <INTF>
    <RET_INFO>
    <NOTE_INFO></NOTE_INFO><!— ID#公告标题#公告时间 -->?这里返回的话,涉及到分页,是否还要有公告总条数
    </RET_INFO >
    <ERR_INFO>
      <ERROR_CODE></ERROR_CODE><!--错误代码 0成功-->
    <ERROR_MSG></ERROR_MSG><!--错误信息 -->
    <ERROR_HINT></ERROR_HINT><!--提示信息-->
    </ERR_INFO>
    </INTF>
    我就是想找一种合理的方法,从这个xml字符串里取得返回过来的信息然后展示在页面上,请问咋办,能否详细点儿,不胜感激..
      

  7.   

    用dom4j解析,直接将获得xml字符串调用下表的方法生成document对象,然后对document对象遍历得到所需的结果,建议楼主去学习下dom4j之document的操作。至于分页调用webservice的入参增加每页显示的数目及其起始行,出参在后台生成xml文件的时候增加总记录数,并在NOTE_INFO中只返回当前页的信息
    Document doc=DocumentHelper.parseText(xmlStr);
    //取得RET_INFO节点下的集合
    List<Element> ret_infoList=doc.getRootElement().elements("RET_INFO");
    for(Element e:ret_infoList){
          Element NOTE_INFO=e.element("NOTE_INFO");
          省略
          }
      

  8.   

    我觉得应该用 XML API 做,手工字符串处理不是好办法,以后会经常改动它就麻烦。我看 Google 的做法好像是在 JavaScript 中使用 XSL 把数据直接转换成 HTML,然后嵌入到一个 DIV 之类的东西里就完了。这样数据和 XSL 单独下载,XSL 可以缓存。这个脚本项目在 sourceforge 上有,只记得项目名中带 xslt 的。用这种方案就不需要在处理器上花时间,只需要为一个消息类型写一个XSL,当然需要对 XSL 比较熟悉。
      

  9.   

    一般都是是根据自己写的服务返回自己定义格式的xml,然后写个工具类对这种格式进行解析,解析xml的方式就很多了
      

  10.   

    ajax+xslt+xpath,感觉很少有用xslt的
      

  11.   


    目前认为这是最好的方法了,简单高效,
    关键就是这句 Document doc=DocumentHelper.parseText(xmlStr);
    把字符串直接变为document对象,之前我以为非要先把xmlstr写到xml文件才能进一步转化为document对象。学习了...
      

  12.   

    可以用jdom或者是dom4j,或者是w3c的解析器来解析,如果你的xml满足有些规范的话,应该有内置的解析器 基本不用你写什么
      

  13.   

        private DataSet GetDataSet(string text)
        {
            try
            {
                XmlTextReader reader = new XmlTextReader(new StringReader(text));
                reader.WhitespaceHandling = WhitespaceHandling.None;
                DataSet ds = new DataSet();
                ds.ReadXml(reader);
                reader.Close();
                ds.Dispose();
                return ds;
            }
            catch (Exception err)
            {
                throw new Exception("GetDataSet方法异常:" + err.Message);
            }
        }