我有一个XML格式的salesforce对象目录。我想标识<fullName>
和所有自定义<fields>
的父文件,其中{
<?xml version="1.0" encoding="UTF-8"?>
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
<deprecated>false</deprecated>
<description>descriptiontext</description>
<fields>
<fullName>custom_field1</fullName>
<required>false</required>
<type>Text</type>
<unique>false</unique>
</fields>
<fields>
<fullName>custom_field2</fullName>
<deprecated>false</deprecated>
<visibleLines>5</visibleLines>
</fields>
<fields>
<fullName>custom_field3</fullName>
<required>false</required>
</fields>
<fields>
<fullName>custom_field4</fullName>
<deprecated>false</deprecated>
<description>custom field 4 description</description>
<externalId>true</externalId>
<required>true</required>
<scale>0</scale>
<type>Number</type>
<unique>false</unique>
</fields>
<fields>
<fullName>custom_field5</fullName>
<deprecated>false</deprecated>
<description>Creator of this log message. Application-specific.</description>
<externalId>true</externalId>
<label>Origin</label>
<length>255</length>
<required>true</required>
<type>Text</type>
<unique>false</unique>
</fields>
<label>App Log</label>
<nameField>
<displayFormat>LOG-{YYYYMMDD}-{00000000}</displayFormat>
<label>Entry ID</label>
<type>AutoNumber</type>
</nameField>
</CustomObject>
所需的输出将是一个字典,其格式如下:
^{pr2}$或任何类似的东西。在
我已经拿到了我的物品清单环球网,我可以用ElementTree得到所有子元素及其属性的列表,但我正在努力克服。我觉得我离得很近,但我希望有人帮我完成这项任务。以下是我目前为止的代码:
import os
import glob
import xml.etree.ElementTree as ET
os.chdir("/Users/paulsallen/workspace/fforce/FForce Dev Account/config/objects/")
objs = []
for file in glob.glob("*.object"):
objs.append(file)
fields_dict = {}
for object in objs:
root = ET.parse(objs).getroot()
....
一旦我解析了XML数据,我就不知道从哪里获取它。在
您确实希望在这里切换到使用^{} ,因为这样您就可以使用XPath查询:
使用该代码,您将得到一个列表字典;每个键是一个文件名(不带扩展名),每个值是一个必需字段的列表。在
XPath查询在默认名称空间中查找
fullName
元素,这些元素中有一个required
元素与其中的文本'true'
同级。然后它获取每个匹配元素的包含文本,这是一个我们可以存储在字典中的列表。在使用此函数可以查找给定根目录下的所有必需字段。它还可以作为将来解析需求的示例/起点
用法示例:
^{pr2}$相关问题 更多 >
编程相关推荐