【问题标题】:Salesforce consuming XML and display data in Visualforce reportSalesforce 使用 XML 并在 Visualforce 报告中显示数据
【发布时间】:2010-11-05 14:43:57
【问题描述】:

首先,这个问题需要一些介绍,所以请多多包涵。

高级是我正在连接到一个外部 Web 服务,该服务会将一些 XML 返回到我的 apex 控制器。我的想法是,我想在 VisualForce 页面中以漂亮的表格格式显示返回的 XML。返回的 XML 格式如下所示:

<Wrapper><reportTable name='table_id' title='Report Title'>
  <row>
    <Element1><![CDATA[campaign_id]]></Element1>
    <Element2><![CDATA[577373]]></Element2>
    <Element3><![CDATA[4129]]></Element3>
    <Element4 dataFormat='2' dataSuffix='%'><![CDATA[0.7151]]></Element4>
    <Element5><![CDATA[2010-04-04]]></Element5>
    <Element6><![CDATA[2010-05-03]]></Element6>
  </row>
</reportTable>

...

现在我正在使用 XMLdom 实用程序类(由 SF 为 XML 函数开发)将此数据映射到自定义对象“reportTable”,其中包含“行”自定义对象的列表。我以这种方式构建它的原因是因为我不知道每行中有多少元素,也不知道行数。

Visualforce 页面如下所示:

<table><apex:repeat value="{!reportTables}" var="table">
  <apex:repeat value="{!table.rows}" var="row">
  <tr>
   <apex:repeat value="{!row.ColumnValue}" var="column">
    <apex:repeat value="{!column}" var="value">
     <td>
     <apex:outputText value="{!value}" />
     </td>
    </apex:repeat>
   </apex:repeat>
   </tr>
  </apex:repeat>

问题是:

1) 这似乎是解决问题的好方法吗?

2) 除了编写我自己的自定义对象以将 VF 映射到之外,还有更简单/更好的方式来使用 XML 吗?

接受任何和所有建议。我真的希望有比自己构建 HTML 表格更好的方法,因为那时我还必须处理样式和对齐等问题。谢谢。

【问题讨论】:

  • 你提出了一个非常好的问题。我的同事也有类似的问题,我完全被难住了。希望有人提出解决方案。

标签: xml salesforce apex-code visualforce


【解决方案1】:

由于您将 XML 直接返回到您的控制器,因此请定义并使用一个包装类,并为所需的每个 XML 节点提供属性(甚至是未定义行长度的附加集合)。通常需要做的是显示来自多个对象的表格数据。包装对象的集合将允许您对其进行迭代,并使用点表示法访问类中的字段。

【讨论】:

  • 好的,感谢您的意见,这基本上就是我现在正在做的事情,对我来说似乎有点乏味。
猜你喜欢
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多