2011-08-06 45 views
0
public with sharing class xml4 
{ 
public string x{get;set;} 
public string c{get;set;} 
List<ArtemisVC__Company_View_Extensions__c> mcs{get; set;} 
public xml4() 
{ 
    DOM.Document doc = new DOM.Document(); 
    dom.XmlNode Extensions = doc.createRootElement('Extensions',Null, Null); 
    mcs=new List<ArtemisVC__Company_View_Extensions__c>(); 
    mcs = ArtemisVC__Company_View_Extensions__c.getall().values(); 
    for(Integer i = 0 ; i <mcs.size(); i++) 
    { 
     dom.XmlNode Extension= Extensions.addChildElement('Extension',null , null); 
     dom.XmlNode FieldName1= Extension.addChildElement('Name',null , null); 
     FieldName1.addTextNode(mcs[i].Name); 
     dom.XmlNode FieldName2=Extension.addChildElement('Url',null,null); 
     //FieldName2.addTextNode(mcs[i].ArtemisVC__Extension_URL__c);   
     dom.XmlNode FieldName3=Extension.addChildElement('Expand-Collapse-SOQL',null,null); 
     FieldName3.addTextNode(mcs[i].Expand_Collapse_SOQL__c); 
     dom.XmlNode FieldName4=Extension.addChildElement('Order',null,null); 
     // FieldName4.addTextNode(mcs[i].ArtemisVC__Order__c); 
     dom.XmlNode FieldName5=Extension.addChildElement('Height',null,null); 
     //FieldName5.addTextNode(mcs[i].Height__c); 
     dom.XmlNode FieldName6=Extension.addChildElement('Width',null,null); 
     // FieldName6.addTextNode(mcs[i].Width__c); 
     dom.XmlNode FieldName7=Extension.addChildElement('ForCompanyType',null,null); 
    // FieldName7.addTextNode(mcs[i].Show_For_CompanyType__c); 
dom.XmlNode FieldName8=Extension.addChildElement('PageOrRelatedListName',null,null); 
     // FieldName8.addTextNode(mcs[i].PageOrRelatedListName__c); 
    } 
    x = doc.toXmlString(); 
    c = 'text/xml#sachin.xml'; 
} 
} 

在上面的代碼我收到異常作爲System.NullPointerException獲取數據的XML文件:參數1不能爲空我生成其中我是從自定義settting我已經made.Need幫助

Class.ArtemisVC.xml4 .:第20行,第43列外部入口點

第20行是FieldName3.addTextNode(mcs [i] .Expand_Collapse_SOQL__c);

請告訴我如何在addTextNode()中傳遞動態值。

Dom.XmlNode addTextNode(String text) - 爲此節點創建子文本節點。文本參數不能有空值。

+0

ArtemisVC__Company_View_Extensions__c是自定義設置的名稱。 – John

回答

2

我假設在這種情況下是「MCS [I] .ArtemisVC__Extension_URL__c」爲空,所以你可以使用三元避免將其寫入功能,像這樣:

FieldName3.addTextNode(mcs[i].Expand_Collapse_SOQL__c != null ? mcs[i].Expand_Collapse_SOQL__c : ''); 

如果我誤解,讓我知道!

+0

你是對的,謝謝你。 – John

相關問題