2017-05-04 6 views
0

Ich versuche, die Exchange-ID aus dem folgenden XML mit Xpath abzufragen. Das Folgende funktionierte.XPATH Abfragewert

/companies[@type="array"]/company[1]/subject_datas[@type="array"]/subject_data[5]/value/text() 

Aber ich habe gerade bemerkt, dass, wenn alle benutzerdefinierten Felder werden in Highrise nicht ausgefüllt dann nicht sie sie senden über in der gleichen Reihenfolge, so

/companies[@type="array"]/company[1]/subject_datas[@type="array"]/subject_data[5]/value/text() 

nicht immer Wechsel ziehen ID

Gibt es eine andere Möglichkeit, diesen Xpath zu schreiben, um den Wert der Exchange ID konsistent zu erhalten?

<?xml version="1.0" encoding="UTF-8"?> 
<companies type="array"> 
<company> 
<author-id type="integer">1151899</author-id> 
<background></background> 
<created-at type="datetime">2015-08-11T13:49:21Z</created-at> 
<group-id type="integer" nil="true"></group-id> 
<id type="integer">239684969</id> 
<owner-id type="integer" nil="true"></owner-id> 
<updated-at type="datetime">2017-05-03T17:46:46Z</updated-at> 
<visible-to>Everyone</visible-to> 
<name>Test Company</name> 
<avatar_url></avatar_url> 
<contact-data> 
<twitter-accounts type="array"/> 
<email-addresses type="array"> 
<email-address> 
<address>[email protected]</address> 
<id type="integer">126789186</id> 
<location>Work</location> 
</email-address> 
</email-addresses> 
<phone-numbers type="array"> 
<phone-number> 
<id type="integer">192421740</id> 
<location>Work</location> 
<number>444 333 6490</number> 
</phone-number> 
</phone-numbers> 
<web-addresses type="array"> 
<web-address> 
<id type="integer">192421741</id> 
<location>Work</location> 
<url>http://www.123process.com/</url> 
</web-address> 
</web-addresses> 
<addresses type="array"> 
<address> 
<city>New York</city> 
<country>United States</country> 
<id type="integer">114818436</id> 
<location>Work</location> 
<state>NY</state> 
<street>444 Winter Way</street> 
<zip>10007</zip> 
</address> 
</addresses> 
<instant-messengers type="array"/> 
</contact-data> 
<subject_datas type="array"> 
<subject_data> 
<id type="integer">162387754</id> 
<subject_field_id type="integer">1009158</subject_field_id> 
<subject_field_label>Agency Extension</subject_field_label> 
<value>ABCDF</value> 
</subject_data> 
<subject_data> 
<id type="integer">162387755</id> 
<subject_field_id type="integer">1009161</subject_field_id> 
<subject_field_label>Agency ID</subject_field_label> 
<value>68</value> 
</subject_data> 
<subject_data> 
<id type="integer">162387756</id> 
<subject_field_id type="integer">1009162</subject_field_id> 
<subject_field_label>Edition</subject_field_label> 
<value>Pro</value> 
</subject_data> 
<subject_data> 
<id type="integer">162387757</id> 
<subject_field_id type="integer">1009157</subject_field_id> 
<subject_field_label>License Count</subject_field_label> 
<value>1</value> 
</subject_data> 
<subject_data> 
<id type="integer">215707824</id> 
<subject_field_id type="integer">1161358</subject_field_id> 
<subject_field_label>Exchange ID</subject_field_label> 
<value>FBB52CA3-DC19-4992-AB2C-7235FABD9129</value> 
</subject_data> 
</subject_datas> 
</company> 
</companies> 
+0

Was meinst du: 'wenn alle benutzerdefinierten Felder nicht in Highrise' ausgefüllt – SomeDude

Antwort

0

Anstatt subject_data[5] verwenden subject_data[subject_field_label='Exchange ID']