I'm trying to parse the below XML file:
<articles>
<article>
<source>EN-US</source>
<target>SL</target>
<id>ka1800000000eCYAAY</id>
<publishstatus>Draft</publishstatus>
<fields>
<field name="BU_Type_SMB__c" xml:space="preserve" translate="false">false</field>
<field name="BU_Type__c" xml:space="preserve" translate="false">RBU</field>
<field name="BU_Type_text__c" xml:space="preserve" translate="false">HCP</field>
<field name="Auto_Assignment_Rule_Enabled__c" xml:space="preserve"translate="false">false</field>
</fields>
</article>
</articles>
Code:
public void XMLClass() {
string xml = '<articles><article><source>EN-US</source><target>SL</target><id>ka1800000000eCYAAY</id><publishstatus>Draft</publishstatus><fields><field name="BU_Type_SMB__c" translate="false">false</field><field name="BU_Type__c" translate="false">RBU</field><field name="BU_Type_text__c" translate="false">HCP</field><field name="Auto_Assignment_Rule_Enabled__c" translate="false">false</field></fields></article></articles>';
Dom.Document doc = new Dom.Document();
doc.load(xml);
//Retrieve the root element for this document.
Dom.XMLNode soapWeather = doc.getRootElement();
system.debug('------soapWeather------'+soapWeather);
Dom.XMLNode OrderDetailId = soapWeather.getChildElement('article', null);
string source = OrderDetailId.getChildElement('source', null).getText();
system.debug('------source--------'+source);
String articleSource = OrderDetailId.getChildElement('target', null).getText();
String articleId = OrderDetailId.getChildElement('id', null).getText();
String articlePublishstatus = OrderDetailId.getChildElement('publishstatus', null).getText();
Dom.XMLNode fieldsList = OrderDetailId.getChildElement('fields', null).getChildElement('field',null);
system.debug('------fieldsList--------'+fieldsList);
Integer fieldCount = fieldsList.getAttributeCount();
system.debug('------fieldCount-----'+fieldCount);
String fieldName = fieldsList.getAttributeValue('name','');
String fieldTranslate = fieldsList.getAttributeValue('translate','');
string fieldvalue = fieldsList.getChildElement('field', null).getText();
/* list<Dom.XMLNode> fieldsNodeLst;
for(Dom.XMLNode fields : fieldsList.getChildElements()){
String fieldName = fields.getAttributeValue('name','');
system.debug('------fieldName--------'+fieldName);
String fieldTranslate = fields.getAttributeValue('translate','');
fieldsNodeLst.add(new list<Dom.XMLNode> (fieldName,fieldTranslate));
} */
}
I'm getting null pointer exception in the below line-
string fieldvalue = fieldsList.getChildElement('field', null).getText();
How can I fix this error?