Мне нужно получить пары ключ / значение из XML, чтобы заполнить информацию о членах на веб-сайте.Вот пример XML:
<a:PObject xmlns:b="http://schemas.datacontract.org">
<b:CanUpsert>true</b:CanUpsert>
<b:Fields xmlns:c="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<c:KeyValueOfstringanyType>
<c:Key>FirstName</c:Key>
<c:Value i:type="d:long" xmlns:d="http://www.w3.org/2001/XMLSchema">Joe</c:Value>
</c:KeyValueOfstringanyType>
<c:KeyValueOfstringanyType>
<c:Key>LastName</c:Key>
<c:Value i:type="d:long" xmlns:d="http://www.w3.org/2001/XMLSchema">Mama</c:Value>
</c:KeyValueOfstringanyType>
</b:Fields>
</a:PObject>
Я новичок в XML, и мне тяжело с префиксами.Я использую следующее, чтобы дать мне массив пар ключ / значение:
<cfset keyValue = xmlSearch(soapBody,"//*[local-name()='Key'] | //*[local-name()='Value']") />
Я могу ссылаться на нужные мне данные по индексу;это работает хорошо по большей части, но по некоторым причинам не каждая запись имеет свои данные в одном и том же месте.То есть #keyValue [4] # работает в 95% записей, но в некоторых из них дает мне совершенно другое значение!
Я читал много постов на эту тему здесь и в других местах;Никто из них не поможет мне решить проблему с префиксами.Например, я могу получить доступ к элементу по имени, используя
<cfset firstNameKey = XmlSearch(soapBody,"//*[ text() = 'FirstName' ]") />
, но как мне получить соответствующее значение?Я попытался использовать следующий брат, но, должно быть, не сделал это правильно ... Я даже попытался удалить все префиксы - ничего не сработало после этого!
Большое спасибо всем заранее за любые советы или предложения, которые вы можете мне дать.Как я уже сказал, я новичок в XML (и не настолько продвинут в CF), и с нетерпением жду, когда меня укажут в правильном направлении.Большое спасибо!