在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. jq获取元素

    <tr><td><div id="add"></div></td></tr>$("#add&quo ...

  2. 【leetcode】Binary Tree Zigzag Level Order Traversal

    Binary Tree Zigzag Level Order Traversal Given a binary tree, return the zigzag level order traversa ...

  3. 【leetcode】Populating Next Right Pointers in Each Node

    Populating Next Right Pointers in Each Node Given a binary tree struct TreeLinkNode { TreeLinkNode * ...

  4. Unity3d《Shader篇》漫反射

    Unity3d<Shader篇>漫反射 Shader "Custom/Ambient" { Properties { _MainTex ("Base (RGB ...

  5. (转载)让XCode运行时自动更新资源

    转自http://goldlion.blog.51cto.com/4127613/1351616 用过XCode的人都知道,XCode有一个臭名昭著的bug——除非你修改了源代码造成了重新编译,否则游 ...

  6. ios 使用xib时,在UIScrollView中添建内容view时,使用约束的注意

    请参与一下链接:http://segmentfault.com/a/1190000002462033 简单的说下,就是必须写满一个view的6个约束,就是上下左右高宽,让scrollview 能够根据 ...

  7. HDU 4945 2048(dp)

    题意:给n(n<=100,000)个数,0<=a[i]<=2048 .一个好的集合要满足,集合内的数可以根据2048的合并规则合并成2048 .输出好的集合的个数%998244353 ...

  8. Ubuntu jsp平台使用JDBC来连接MySQL数据库

    Ubuntu 7.04 搭建Ubuntu jsp平台开发环境MySQL+tomcat+apache+j2sdk1.6在所有安装开始前先在Terminal中输入 rpm -q -a查看是否安装过rpm ...

  9. php数据访问(修改)

    修改:跟添加相似,需要显示默认值 先嵌入php代码  查询数据库 $code = $_GET["c"]; $db = new MySQLi("localhost" ...

  10. 不同版本CUDA编程的问题

    1 无法装上CUDA的toolkit 卸载所有的NVIDIA相关的app,包括NVIDIA的显卡驱动,然后重装. 2之前的文件打不开,one or more projects in the solut ...