Использование специальных символов в теге XML

Привет! Я использую PHP и написал приложение, которое создает и заполняет SimpleXMLObject результатами запроса к базе данных. Результаты сохраняются в виде тегов. Я делаю это с

if (!isset($set->$parttemp)) {
$parttemp = "$parttemp &#40 $groupname &#41";
$set = $set->addChild($parttemp);
}

Моя проблема в том, что я хочу использовать специальные символы в тегах XML. После небольшого исследования я обнаружил, что вам нужно использовать код этого символа, например, для «(» вам нужно написать (

Но если вы хотите использовать эти коды внутри тега, вам также необходимо заменить теги этим кодом. Например для <Разрешение (ы) /> Мне нужно написать &lt; permission &#40; s &#41; / &gt;

Это не будет большой проблемой, но теги устанавливаются из операции addChild, поэтому я не могу ими манипулировать. Есть ли другое решение?

0

Решение

Знаки пунктуации, такие как «(«, недопустимы в именах элементов или атрибутов XML. Попытка их избежать (например, в качестве ссылки на десятичный символ) &#40;) бесполезен — символьные ссылки не распознаются в имени.

Вам нужно будет найти какой-нибудь способ кодирования строки на уровне приложения в качестве допустимого имени. Например, я видел, как люди используют <permission_x28_s_x29_>,

Обычно, однако, я бы предпочел <element name="permissions(s)">,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]