Привет! Я использую PHP и написал приложение, которое создает и заполняет SimpleXMLObject результатами запроса к базе данных. Результаты сохраняются в виде тегов. Я делаю это с
if (!isset($set->$parttemp)) {
$parttemp = "$parttemp ( $groupname )";
$set = $set->addChild($parttemp);
}
Моя проблема в том, что я хочу использовать специальные символы в тегах XML. После небольшого исследования я обнаружил, что вам нужно использовать код этого символа, например, для «(» вам нужно написать (
Но если вы хотите использовать эти коды внутри тега, вам также необходимо заменить теги этим кодом. Например для <Разрешение (ы) /> Мне нужно написать < permission ( s ) / >
Это не будет большой проблемой, но теги устанавливаются из операции addChild, поэтому я не могу ими манипулировать. Есть ли другое решение?
Знаки пунктуации, такие как «(«, недопустимы в именах элементов или атрибутов XML. Попытка их избежать (например, в качестве ссылки на десятичный символ) (
) бесполезен — символьные ссылки не распознаются в имени.
Вам нужно будет найти какой-нибудь способ кодирования строки на уровне приложения в качестве допустимого имени. Например, я видел, как люди используют <permission_x28_s_x29_>
,
Обычно, однако, я бы предпочел <element name="permissions(s)">
,
Других решений пока нет …