Я делаю простой скрипт, который принимает XML как входной сигнал, изменяет некоторые значения и сохраняет его с другим именем.PHP SIMPLEXML XPATH соответствует нескольким тегам с одинаковой подстрокой
XML имеет несколько пространств имен, часто вложенных.
Я пытаюсь найти умное решение следующей проблемы.
У меня есть несколько тегов, которые имеют общую подстроку, например, эпизод
<ext:EpisodeLong>Test</ext:EpisodeLong>
<ext:EpisodeBrief>Test</ext:EpisodeBrief>
<ext:EpisodeName>Test</ext:EpisodeName>
Я хочу, чтобы получить доступ к каждому и каждый тег, который соответствует «Эпизод» и изменить значение.
Соответствующие пропущено из XML:
<Title endDateTime="2015-05-21T04:06:48Z" providerVersionNum="1" startDateTime="2015-05-02T04:06:48Z" uriId="c5.channel5.com/TITL0000000000001360">
<core:Ext xmlns:core="http://www.cablelabs.com/namespaces/metadata/xsd/core/1">
<ext:LocalizableTitleExt xmlns:ext="URN:NNDS:CMS:ADI3:01"
<xml:lang="eng">
<ext:EpisodeLong>Test</ext:EpisodeLong>
<ext:EpisodeBrief>Test</ext:EpisodeBrief>
<ext:EpisodeName>Test</ext:EpisodeName>
</ext:LocalizableTitleExt>
Все XPaths Я пытаюсь сделать не в состоянии. Если я сделаю строку ниже, я получаю 99% XML, а я хочу все только в разделе Title.
$results = $xml->xpath('//*[contains(E:LocalizableTitleExt, Episode)]');
foreach ($results as $s)
{
echo "DEBUG, xpath has found: ".$s."<br/>";
$elementsToRemove[] = $s;
}
* принимает на себя все пространства имен уже зарегистрированы, Е вн, С Основные
Идеи?
Заранее спасибо
пс: не может использовать DOM, только SimpleXML и XPATH
Спасибо, попробует – user3375601