我正在寻找一种从受控字段的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',允许使用值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
?
答案 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