Напрошується очевидне рішення - підставити тег LXP
У деяких ситуаціях вкладення тегів LXP в зовнішні теги може благополучно працювати, але робити це не рекомендується. Можливо, вимоги до правильно оформленим документом LXP в майбутньому стануть більш жорсткими, оскільки подібне вкладення не тільки ускладнює читання LXP, а й порушує синтаксичну цілісність розмітки.
Для вирішення подібних проблем в LXP був введений тег
Необов'язковий атрибут xappend дозволяє приєднати довільну рядок до кінця згенерованого тега. Наприклад, атрибут xappend = "checked" в тезі прапорця HTML створює тег .
Всі інші атрибути передаються зовнішньому тегу без змін. Почасти саме ця обставина пояснює корисність тега
Лістинг 13.31. Підстановка в зовнішньому тезі з порожнім блоком
Результат виконання цього фрагмента в документі LXP (передбачається, що змінної width присвоєно значення 10):
<1mg src="images/spacer/gif" width="10" />
Зверніть увагу на завершальний символ / в тезі
якщо тег
і завершальним символом /. В іншому випадку LXP прийме найближчий закриває тег за парний тег останнього відкриває тега
<-- ОШИБКА: тег с пустым блоком должен заканчиваться символом / -->
У цьому фрагменті використовуються три тега Якщо змінна table_width дорівнює 100, а неременная width дорівнює 10, неправильний результат буде виглядати так: <-- ОШИБКА: тег с пустым блоком должен заканчиваться символом / --> У лістингу 13.32 приведена правильна комбінація тегів Лістинг 13.32. Використання вкладених тегів <-- ПРАВИЛЬНО: тег с пустым блоком заканчивается символом / --> Оскільки другий тег <-- ПРАВИЛЬНО: тег с пустым блоком заканчивается символом / -->, а третій (відкриває) інкапсулює тег . Оскільки в HTML тег не має парного завершального тега, цей тег
, а тег.
Схожі статті