xmlstarlet - 为受控字段提取Salesforce数据

时间:2017-05-18 15:51:25

标签: salesforce xmlstarlet

我正在寻找一种从受控字段的Salesforce配置转储中提取数据的方法。转储是XML文件,我有以下信息:

<?xml version="1.0" encoding="UTF-8"?>
<valueSet>
    <valueSettings>
        <controllingFieldValue>Product A</controllingFieldValue>
        <controllingFieldValue>Product B</controllingFieldValue>
        <valueName>1</valueName>
    </valueSettings>
    <valueSettings>
        <controllingFieldValue>Product A</controllingFieldValue>
        <valueName>2</valueName>
    </valueSettings>
</valueSet>

这意味着:

  • 表示“产品A”和“产品B”值1;
  • 允许“产品A”值为2。

因此,对于'产品A',允许使用值1和2。 对于“产品B”,仅允许值为1。

我想为每件产品创建允许值列表 我正在尝试这个:

xmlstarlet sel -T -t -m '//valueSettings' -i 'controllingFieldValue[text()="Product A"]' -v 'controllingFieldValue[text()]' -o '|' -v 'valueName[text()]' -n test.xml

输出是:

Product A
Product B|1
Product A|2

同样,controllingFieldValue节点也会显示其他valueSettings,其中找到匹配的controllingFieldValue

如何仅显示controllingFieldValue匹配条件与相应的valueName

1 个答案:

答案 0 :(得分:1)

我能够使用以下方法获得正确的结果:

xmlstarlet sel -T -t -m '//valueSettings' -i 'controllingFieldValue[text()="Product A"]' -v 'controllingFieldValue[text()="Product A"]' -o '|' -v 'valueName[text()]' -n test.xml

输出是:

Product A|1
Product A|2