Я создаю XML-файл, в котором я получаю данные из пользовательских настроек, которые я сделал - PullRequest
0 голосов
/ 06 августа 2011
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: Argument 1 cannot be null

Class.ArtemisVC.xml4 .: строка 20, столбец 43 Внешняя точка входа

Строка 20 - это FieldName3.addTextNode (mcs [i] .Expand_Collapse_SOQL__c);

Скажите, пожалуйста, как передать динамическое значение в addTextNode().

Dom.XmlNode addTextNode(String text) - Создает дочерний текстовый узел для этого узла. Текстовый аргумент не может иметь нулевое значение.

1 Ответ

2 голосов
/ 08 августа 2011

В этом случае я предполагаю, что "mcs [i] .ArtemisVC__Extension_URL__c" равно нулю, поэтому вы можете использовать троичный, чтобы избежать передачи этого в функцию следующим образом:

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

Если я не понял, дайте мне знать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...