XML解析文件

package fax.util;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.apache.commons.lang.StringUtils;

import net.coobird.thumbnailator.Thumbnails;
//XML解析文件
public class Test {
    private String endPoint;

    private String AspId; //AP提供商编号

    private String TradeCode;

    String namespaceURI = "TradeService";

    Document document = null;

    public String errInfo = "";

    public String succInfo = "";

    String paraSerial = "serial";//序号

    String paraRand = "rand";//随机码

    String paraEncode = "encode";//hashcode

    /****
     * 根据传进去的节点名,返回该节点的值
     * @param nodeName
     * @return
     * @throws Exception
     */
    public String getSingleNodeValue(String nodeName) throws Exception {
        String ret = "";
        NodeList nodeList = document.getElementsByTagName(nodeName);
        if (nodeList.item(0) == null) {
//          throw new Exception("Can‘t find node!" + nodeName);
            System.out.println("Can‘t find node!" + nodeName);
            return "";
        }
        if (nodeList.item(0).getFirstChild() != null) {
            ret = nodeList.item(0).getFirstChild().getNodeValue().trim();
        }
        return ret;
    }

    /****
     * 把一个字符串转成XML类型
     * @param content
     * @throws Exception
     */
    public void loadXml(String content) throws Exception {
        InputStream is = new ByteArrayInputStream(content.getBytes());
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        document = builder.parse(is);
    }

    /****
     * 调用远程接口并获得返回的值
     * @param endPoint
     * @param namespaceURI
     * @param localPart
     * @param args
     * @return
     */
    public String getWebServiceResult(String endPoint, String namespaceURI,
            String localPart, Object[] args) {
        String ret = null;

        try {
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(endPoint));
            call.setOperationName(new QName(namespaceURI, localPart));
            ret = (String) call.invoke(args);
        } catch (Exception e) {

        }
        return ret;
    }

    /****
     * 对所有功能进行操作
     * @param areaid
     * @param EpId
     * @param Account
     * @param Pwd
     * @return
     */

    public String checkAccountPwd(String endPoint, String Name, String Account,
            String Pwd) {
        // endPoint="http://192.168.0.110:8080/ZZweb/ProductPurchaseImpl.jws";
        /***
         * 第一个参数和第二个是连接地址,第三个是方法名,最后个是参数。
         */
        String resultXml = this.getWebServiceResult(endPoint, endPoint, Name,
                new Object[] { "" });
        System.out.println(resultXml);
        try {
            this.loadXml(resultXml);
        } catch (Exception e) {
            // this.printErrorMsg("数据传送出错!");
        }
        String retunstatus = "";
        String usertype = "";
        try {
            retunstatus = this.getSingleNodeValue(Pwd);
        } catch (Exception e) {

            e.printStackTrace();
        }
        return retunstatus;
    }

    /**
     * 获取节点内容
     * @description
     * @param stringxml
     * @param key
     * @return
     */
    public String check(String stringxml, String key) throws Exception {
        this.loadXml(stringxml);
        String retunstatus = "";
        retunstatus = this.getSingleNodeValue(key);
        return retunstatus;
    }
}
时间: 2024-10-12 23:20:53

XML解析文件的相关文章

ios之json,xml解析

JSON解析步骤: 1.获取json文件路径 NSString*path = [[NSBundle mainBundle] pathForResource:@"Teacher"ofType:@"json"]; 2.读取文件中的data NSData *data = [NSData dataWithContentsOfFile:path]; 3.把data转化为可变数组或者可变字典 是字典还是数组要看json最外层数据是什么.NSJSONSerialization是重

Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上

                                                                                                                                               本文原创, 转载请注明出处:http://blog.csdn.net/qinjuning 在之前一篇博文中<<Android中View绘制流程以及invalidate()等相关方法分析>>,简单的阐述

UI进阶 XML解析适配 引入GDataXML文件时候 &#39;libxml/tree.h&#39;file not found 错误解决办法

在工程的"Build Settings"页中找到"Header Search Path"项,添加"/usr/include/libxml2". 在"Other Linker Flags"项,添加"-lxml2" 同理引入别的类型文件不匹配的时候也可以用这种方法 UI进阶 XML解析适配 引入GDataXML文件时候 'libxml/tree.h'file not found 错误解决办法

Android中measure过程、WRAP_CONTENT详解以及 xml布局文件解析流程浅析

转自:http://www.uml.org.cn/mobiledev/201211221.asp 今天,我着重讲解下如下三个内容: measure过程 WRAP_CONTENT.MATCH_PARENT/FILL_PARENT属性的原理说明 xml布局文件解析成View树的流程分析. 希望对大家能有帮助.- - 分析版本基于Android 2.3 . 1.WRAP_CONTENT.MATCH_PARENT/FILL_PARENT 初入Android殿堂的同学们,对这三个属性一定又爱又恨.爱的是使

android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象

前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xstream 二: 把对象转换成xml android XMl 解析神奇xstream 三: 把复杂对象转换成 xml 1.文件准备 把一个预先写好的xml文件放在android项目目录的 asset 文件夹. 文件内容为: <blog> <age>30</age> <

android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件

前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xstream 二: 把对象转换成xml android XMl 解析神奇xstream 三: 把复杂对象转换成 xml android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象 1.建立JavaBeen package com.android10; public class

【转】Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(下)

转载请注明出处:http://blog.csdn.net/qinjuning 上篇文章<<Android中measure过程.WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)>>中,我们 了解了View树的转换过程以及如何设置View的LayoutParams的.本文继续沿着既定轨迹继续未完成的job. 主要知识点如下:                 1.MeasureSpc类说明                 2.measure过程详解(揭秘其细节);   

Android Animation学习(三) ApiDemos解析:XML动画文件的使用

可以用XML文件来定义Animation. 文件必须有一个唯一的根节点: <set>, <objectAnimator>, or <valueAnimator>三者之一. 对应的Java类是: ValueAnimator - <animator> ObjectAnimator - <objectAnimator> AnimatorSet - <set> <set>标签是可以嵌套的. <set>标签的androi

使用第三方DOM解析XML格式文件

在解析XML格式文件的时候,使用SAX解析需要实现好多代理方法,比较难记,也容易出错,现在介绍一种由Google推出的第三方DOM(Document Object Model)来解析XML文件. 首先将该第三方文件拖到工程中.谷歌下载地址:https://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/ (注:由于该三方是很久之前的版本,还是基于MRC格式下的代码,所以需要改成ARC兼