2016-06-03 1 views
0

У меня есть многоязычный XML-файл, содержащий английские и немецкие строки, которые имеют одно и то же имя элемента type, но отличаются друг от друга атрибутом lang.Доступ к данным XML: Имя одного и того же имени, но дифференцирование по атрибуту

<?xml version="1.0" encoding="utf-8"?> 
<project> 
    <type lang="en">package design</type> 
    <type lang="de">verpackung</type> 
</project> 

Как я могу получить доступ к этой информации отдельно?

$xml->type; Изгоняет содержимое первого type элемент.

ответ

1

В XML существует несколько способов получить требуемый узел. Или вы можете выполнять итерацию через самого внутреннего родителя, или вы можете создать свой xpath и проанализировать соответственно.

<type lang="de">verpackung</type> 

Предположит, что вы должны получать текстовое содержимое, имеющее отношение к немецкому языку,

XPath: проект/типа [@ Ланг = «EN»] Это непосредственно принимает вас к нужному узлу.

Вы также можете использовать jaxb для этого.

+0

Спасибо! '$ xml-> xpath (" type [@ lang = 'en'] ")' работает для меня! – user1706680