У меня есть XML-документ в следующей структуре.php xpath итерация через внутренние узлы, получение значений на основе определенных атрибутов
<rows pos="0" rec_count="200">
<row id="109">
<cell style="" fieldName="pid">104</cell>
<cell style="" fieldName="title">Mr.</cell>
<cell style="" fieldName="name">Vladimir</cell>
<cell style="" fieldName="projectcode">879</cell>
<cell style="" fieldName="clientstatus">1000000000</cell>
</row>
<row id="111">
<cell style="" fieldName="pid">105</cell>
<cell style="" fieldName="title">Mr.</cell>
<cell style="" fieldName="name">Barak</cell>
<cell style="" fieldName="projectcode">789/cell>
<cell style="" fieldName="clientstatus">1000000000</cell>
</row>
</rows>
Теперь мне нужно получить значение каждой строки, в массив, где каждый элемент строки представляет собой ассоциативный массив, в котором FIELDNAME из выше, становится ключом, значение элемента является значением узла.
Как я могу выполнить это с помощью XPath?
Я пробовал несколько методов; пока никто не работал.
Спасибо @JeffreyBosboom, @Makyen за ваш ответ.
Самый успешный я пришел следующим образом.
foreach ($xml->xpath('//row') as $node) {
foreach($node->cell as $cell) {
var_dump((string)$cell[0]);
}
}
С его помощью я могу получить значение узла. Но мне нужно, чтобы получить атрибут FIELDNAME извлеченный в каждой итерации
У вас больше шансов получить помощь, если вы покажете нам, что вы пробовали, и объясните, почему эти попытки не сделали то, что вы хотите. –
Какой код вы уже пробовали? Пожалуйста, * [изменить] вопрос *, чтобы включить исходный код в вопрос. См. [Какие темы можно задать здесь?] (Http://stackoverflow.com/help/on-topic), [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how -to-ask) и [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). – Makyen
'(string) $ cell' является значением элемента * cell * и' (string) $ cell ['fieldName'] 'атрибута * fieldName *. – hakre