我正在生成一个 xml 文件,在其中我从所做的自定义设置中获取数据
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 can not be null
Class.ArtemisVC.xml4.:第 20 行,第 43 列外部入口点
第 20 行是 FieldName3.addTextNode(mcs[i].Expand_Collapse_SOQL__c);
请告诉我如何在 addTextNode()
中传递动态值。
Dom.XmlNode addTextNode(String text)
- 为此节点创建子文本节点。文本参数不能有空值。
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';
}
}
In the above code i am getting exception as System.NullPointerException: Argument 1 cannot be null
Class.ArtemisVC.xml4.: line 20, column 43 External entry point
Line 20 is FieldName3.addTextNode(mcs[i].Expand_Collapse_SOQL__c);
Please tell me how to pass the dynamic value in addTextNode()
.
Dom.XmlNode addTextNode(String text)
- Creates a child text node for this node. The text argument can't have a null value.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在这种情况下,我假设“mcs[i].ArtemisVC__Extension_URL__c”为空,因此您可以使用三元来避免将其传递到函数中,如下所示:
如果我误解了,请告诉我!
I'm assuming in this case that "mcs[i].ArtemisVC__Extension_URL__c" is null, so you can use the ternary to avoid passing that into the function like so:
If I've misunderstood, let me know!