#php #strip-tags
#php #разделять теги
Вопрос:
У меня есть пользовательская система генерации тегов для XML. Я использую пользовательский PHP. Здесь я могу добавлять пользовательские теги XML и добавлять его функциональность. Чего я хочу добиться, так это того, что я хотел бы отображать содержимое дисплея только из определенного тега. Проверьте следующий код, если мой:
<?xml version="1.0" encoding="UTF-8"?>
<jsaonthego>
<jobdetails>
<templateversion>1</templateversion>
<title>Testing Title</title>
<taskdetails>Testing Details</taskdetails>
</jobdetails>
<cem>
<item>999</item>
</cem>
</jsaonthego>
Из приведенного выше кода я хотел бы показать только «Testing Title», но не что-либо еще.
Пока я использую следующий код без какой-либо удачи.
<?php
$result = preg_replace('/<jsaonthego<jobdetails<templateversion<taskdetails<cem<itemb[^>]*>(.*?)</jsaonthego>item>taskdetails>templateversion>jobdetails>cem>/i', '', $title);
echo $result;
?>
Заранее спасибо.
Комментарии:
1. Не возитесь с XML с регулярными выражениями; используйте правильный анализатор XML / DOM.
2. Мне нужно было выполнить в соответствии с требованиями клиента.
3. Я не могу поверить, что кто-то готов платить деньги, чтобы специально анализировать XML, избегая синтаксических анализаторов XML. Является ли это школьным заданием в дополнение к уроку регулярных выражений? В этом нет ничего плохого, но нам нужен реальный контекст, чтобы правильно отвечать на вопросы.
4. Кстати, причина, по которой ваше регулярное выражение не работает, заключается в том, что вы в основном составляете синтаксис:
<jsaonthego<jobdetails<templateversion
Ответ №1:
PHP имеет несколько встроенных XML-библиотек. Для этого варианта использования я бы выбрал SimpleXML:
$jsaonthego = simplexml_load_string($xml);
echo $jsaonthego->jobdetails->title;
(демо)