Salesforce Apex,遍历具有相同名称标签的XML



我正在努力遍历一些XML。 有几个我必须阅读每个人,以便从他们那里得到孩子。我当前的代码只会读取第一条记录。我应该有 5 条记录,但得到第一个 6 次。我的 for 循环显然不起作用,并且每次都没有设置字段。我试图查看调试日志,但返回并清空屏幕。

Dom.XmlNode lien_data_sectList  = uspprlien_data.getChildElement('LIEN_DATA_SECT',  null); 
for(Dom.XmlNode lien_data_sects :uspprlien_data.getChildElements()) {
    Dom.XmlNode lien_data_sect = uspprlien_data.getChildElement('LIEN_DATA_SECT',  null);
    //LIEN_STAT__c    Lien Status               
    Dom.Xmlnode lienStats = lien_data_sect.getChildElement('LIEN_STAT',  null);
    if (lienStats  != null) {
        P_record.LIEN_STAT__c = lienStats.getText();
        system.debug(P_record.LIEN_STAT__c);
    }
    //LIEN_AMT__c Lien Amount
    Dom.Xmlnode lienAmts = lien_data_sect.getChildElement('LIEN_AMT',  null);
    if (lienAmts != null) {
        P_record.LIEN_AMT__c = lienAmts.getText();
        P_record.Lien_Amount_Final__c = Decimal.valueOf(P_record.LIEN_AMT__c);
    }
    m_PRLiens.add(P_record);
} //LIEN_DATA_SECT loop end

您已经在遍历父节点的子节点,无需按名称获取它。

Dom.XmlNode lien_data_sectList  = uspprlien_data.getChildElement('LIEN_DATA_SECT',  null); 
for(Dom.XmlNode lien_data_sect :uspprlien_data.getChildElements()) {
//LIEN_STAT__c    Lien Status               
Dom.Xmlnode lienStats = lien_data_sect.getChildElement('LIEN_STAT',  null);
if (lienStats  != null) {
    P_record.LIEN_STAT__c = lienStats.getText();
    system.debug(P_record.LIEN_STAT__c);
}
//LIEN_AMT__c Lien Amount
Dom.Xmlnode lienAmts = lien_data_sect.getChildElement('LIEN_AMT',  null);
if (lienAmts != null) {
    P_record.LIEN_AMT__c = lienAmts.getText();
    P_record.Lien_Amount_Final__c = Decimal.valueOf(P_record.LIEN_AMT__c);
}
m_PRLiens.add(P_record);
} //LIEN_DATA_SECT loop endenter code here

最新更新