在Salesforce中处理Xml的生成与解析

1): Generate Xml

    private String ConvertAccountToXmlInfo(Account acc){

        Dom.Document doc = new Dom.Document();
Dom.Xmlnode rootNode = doc.createRootElement('Accounts', null, null); Dom.Xmlnode accountNode = rootNode.addChildElement('Account', null, null);
accountNode.addChildElement('AccountName', null, null).addTextNode(acc.Name);
accountNode.addChildElement('AccountNumber', null, null).addTextNode(acc.AccountNumber);
accountNode.addChildElement('ABN', null, null).addTextNode(acc.ABN__c);
accountNode.addChildElement('AutoEmailInvoice', null, null).addTextNode(String.valueOf(acc.Auto_Email_Invoice__c));
accountNode.addChildElement('CreditType', null, null).addTextNode(acc.Credit_Type__c);
accountNode.addChildElement('GPID', null, null).addTextNode(acc.GP_ID__c);
accountNode.addChildElement('PPSR', null, null).addTextNode(acc.PPSR__c);
accountNode.addChildElement('VIPNumber', null, null).addTextNode(acc.VIP_Number__c);
accountNode.addChildElement('AccountContact', null, null).addTextNode(acc.Account_Contact__c);
accountNode.addChildElement('Phone', null, null).addTextNode(acc.Phone);
accountNode.addChildElement('Fax', null, null).addTextNode(acc.Fax);
accountNode.addChildElement('Email', null, null).addTextNode(acc.Email__c); Dom.Xmlnode baNode = accountNode.addChildElement('BillingAddress', null, null);
baNode.addChildElement('Address', null, null).addTextNode(acc.BillingStreet);
baNode.addChildElement('Suburb', null, null).addTextNode(acc.BillingCity);
baNode.addChildElement('Postcode', null, null).addTextNode(acc.BillingPostalCode);
baNode.addChildElement('State', null, null).addTextNode(acc.BillingState);
baNode.addChildElement('Country', null, null).addTextNode(acc.BillingCountry); Dom.Xmlnode saNode = accountNode.addChildElement('ShippingAddress', null, null);
saNode.addChildElement('Address', null, null).addTextNode(acc.ShippingStreet);
saNode.addChildElement('Suburb', null, null).addTextNode(acc.ShippingCity);
saNode.addChildElement('Postcode', null, null).addTextNode(acc.ShippingPostalCode);
saNode.addChildElement('State', null, null).addTextNode(acc.ShippingState);
saNode.addChildElement('Country', null, null).addTextNode(acc.ShippingCountry); return doc.toXmlString();
}

2): Parse Xml

private static Account GenerateAccountFromXmlInfo(String accountXmlInfo){
Account currentAcc = new Account();
system.debug('00001 ---- ' + accountXmlInfo);
Dom.Document doc = new Dom.Document();
doc.load(accountXmlInfo);
Dom.Xmlnode rootNode = doc.getRootElement();
Dom.Xmlnode accountNode = rootNode.getChildElement('Account', null);
currentAcc.Name = accountNode.getChildElement('AccountName', null).getText();
currentAcc.AccountNumber = accountNode.getChildElement('AccountNumber', null).getText();
currentAcc.ABN__c = accountNode.getChildElement('ABN', null).getText();
currentAcc.Auto_Email_Invoice__c = Boolean.valueOf(accountNode.getChildElement('AutoEmailInvoice', null).getText());
currentAcc.Credit_Type__c = accountNode.getChildElement('CreditType', null).getText();
currentAcc.GP_ID__c = accountNode.getChildElement('GPID', null).getText();
currentAcc.PPSR__c = accountNode.getChildElement('PPSR', null).getText();
currentAcc.VIP_Number__c = accountNode.getChildElement('VIPNumber', null).getText();
currentAcc.Account_Contact__c = accountNode.getChildElement('AccountContact', null).getText();
currentAcc.Phone = accountNode.getChildElement('Phone', null).getText();
currentAcc.Fax = accountNode.getChildElement('Fax', null).getText();
currentAcc.Email__c = accountNode.getChildElement('Email', null).getText(); Dom.Xmlnode baNode = accountNode.getChildElement('BillingAddress', null);
currentAcc.BillingStreet = baNode.getChildElement('Address', null).getText();
currentAcc.BillingCity = baNode.getChildElement('Suburb', null).getText();
currentAcc.BillingPostalCode = baNode.getChildElement('Postcode', null).getText();
currentAcc.BillingState = baNode.getChildElement('State', null).getText();
currentAcc.BillingCountry = baNode.getChildElement('Country', null).getText(); Dom.Xmlnode saNode = accountNode.getChildElement('ShippingAddress', null);
currentAcc.ShippingStreet = saNode.getChildElement('Address', null).getText();
currentAcc.ShippingCity = saNode.getChildElement('Suburb', null).getText();
currentAcc.ShippingPostalCode = saNode.getChildElement('Postcode', null).getText();
currentAcc.ShippingState = saNode.getChildElement('State', null).getText();
currentAcc.ShippingCountry = saNode.getChildElement('Country', null).getText(); return currentAcc;
}

Click following links to learn more technology:

http://it.toolbox.com/blogs/anything-worth-doing/a-better-way-to-generate-xml-on-salesforce-using-visualforce-55433

http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_xml_dom.htm

在Salesforce中处理Xml的生成与解析的更多相关文章

  1. 6.2 dubbo在spring中自定义xml标签源码解析

    在6.1 如何在spring中自定义xml标签中我们看到了在spring中自定义xml标签的方式.dubbo也是这样来实现的. 一 META_INF/dubbo.xsd 比较长,只列出<dubb ...

  2. 在请求中使用XML Publisher生成文件报错

    在页面上使用按钮生成该文件不报错,但是使用请求就报错. 错误内容如下 Error : No corresponding LOB data found :SELECT L.FILE_DATA FILE_ ...

  3. xml的生成与解析_老师笔记

    使用序列化器生成一个xml文件 //1,初始化一个xml文件的序列化器 XmlSerializer serializer = Xml.newSerializer(); //2.初始化序列器参数 Fil ...

  4. Java读取数据库中的xml格式内容,解析后修改属性节点内容并写回数据库

    直接附代码: 1.测试用的xml内容 <mxGraphModel> <root> <mxCell id="-1" /> <mxCell i ...

  5. android xml的生成与解析

    Main java package com.itheima.xml; import android.app.Activity; import android.content.Context; impo ...

  6. Qt之JSON生成与解析

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December ...

  7. ZXing 生成、解析二维码图片的小示例

    概述 ZXing 是一个开源 Java 类库用于解析多种格式的 1D/2D 条形码.目标是能够对QR编码.Data Matrix.UPC的1D条形码进行解码. 其提供了多种平台下的客户端包括:J2ME ...

  8. 【转载】Qt之JSON生成与解析

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December ...

  9. Android中XML文件的序列化生成与解析

    xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...

随机推荐

  1. pycharm 中 pep8 检查开启.

    pycharm pep8检查的开启,默认是暗黄色,我这里为了醒目给改成了黄色.

  2. struts2 如何实现mvc 的?

  3. docker -v挂载数据卷网络异常的问题

    docker 删除容器并重新运行容器时报如下异常: docker: Error response from daemon: failed to create endpoint tomcat001 on ...

  4. iOS coredata 级联删除

    应用场景如下,每个用户可以设定多个提醒,当删除一个用户时,应当把相关的提醒都删除,而删除一个提醒时,应当把提醒从用户信息中删除. 那么 Profile 应该建立一个如下图的relationship 而 ...

  5. nyoj17_又做最大递增子序列

    单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4   输入 ...

  6. BestCoder22 1003.NPY and shot 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5144 题目意思:有个人抛物体,已知抛的速度和高度,问可以抛到的最远距离是多少.即水平距离. 做的时候是 ...

  7. (转)JAVA AJAX教程第二章-JAVASCRIPT基础知识

    开篇:JAVASCRIPT是AJAX技术中不可或缺的一部分,所以想学好AJAX以及现在流行的AJAX框架,学好JAVASCRIPT是最重要的.这章我给大家整理了一些JAVASCRIPT的基础知识.常用 ...

  8. js 如何在浏览器中获取当前位置的经纬度

    这个有一定的误差哈,具体的误差是多少,有兴趣的朋友可以去测试下 直接上代码 index.html页面代码: <html> <head lang="en"> ...

  9. apache vhost

    httpd.conf: Include "F:/wamp/alias/*" <Directory "F:\wamp\www">    Options ...

  10. java课后作业6

    一.运行TestInherits.java 结论:通过super调用基类构造方法,必须是子类构造方法中的第一个语句. 二.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不 ...