Я пытаюсь написать регулярное выражение, используя библиотеку PCRE в PHP.
Мне нужно регулярное выражение для сопоставления только с &
, >
и <
символами, которые существуют в строковой части любого узла XML, а не с самим объявлением тега.
Входной XML:
<pnode>
<cnode>This string contains > and < and & chars.</cnode>
</pnode>
Идея состоит в том, чтобы найти и заменить эти символы и преобразовать их в эквиваленты сущностей XML.
Если бы я преобразовал весь XML в сущности, XML бы выглядел так:
Весь XML преобразован в сущности
<pnode>
<cnode>This string contains > and < and & chars.</cnode>
</pnode>
Мне нужно, чтобы это выглядело так:
Правильный XML
<pnode>
<cnode>This string contains > and < and & chars.</cnode>
</pnode>
Я пытался написать регулярное выражение для сопоставления этих символов, используя look-ahaead, но я не знаю достаточно, чтобы заставить это работать. Моя попытка (в настоящее время только пытается соответствовать> символам):
/>(?=[^<]*<)/g
Просто чтобы прояснить, что XML, который я пытаюсь исправить, получен от третьей стороны, и они, кажется, не могут исправить его своим концом, поэтому я пытаюсь это исправить.