<1хр>
<xtag xname-"img" src="images/spacer.gif" width="$width" />
</lxp>
Результат выполнения этого фрагмента в документе LXP (предполагается, что переменной width присвоено значение 10):
<1mg src="images/spacer/gif" width="10" />
Обратите внимание на завершающий символ / в теге <xtag>. Тег <xtag> может быть открывающим, закрывающим пли тегом с пустым блоком в зависимости от того, какой тег в конечном счете требуется вывести. Важнейшая особенность этих тегов заключается в том, что LXP отслеживает все «незакрытые» теги <xtag> и выбирает соответствующее имя тега при достижении закрывающего тега </xtag>.
Если тег <xtag> создается для внешнего тега с пустым блоком (например, для тега HTML <img>), вы обязаны оформить <xtag> в виде тега с пустым блоком
и завершающим символом /. В противном случае LXP примет ближайший закрывающий тег </xtag> за парный тег последнего открывающего тега <xtag> (в нашем случае — <img>), что приведет к неверному сопоставлению тегов. Рассмотрим следующий фрагмент:
<1хр>
<xtag xname="table" width="$table_w1dth">
<tr>
<-- ОШИБКА: тег с пустым блоком должен заканчиваться символом / -->
<td><xtag xname="img" src="images/spacer.gif" w1dth="$width"></td>
</tr>
</xtag>
</lxp>
В этом фрагменте используются три тега <xtag>. Два из них (открывающий и закрывающий) относятся к тегу <table>, а третий (открывающий) инкапсулирует тег <img>. Поскольку в HTML тег <img> не имеет парного завершающего тега, этот тег <tag> должен быть тегом с пустым блоком, но LXP не воспринимает его в этом качестве (обратите внимание на отсутствие завершающего символа /). Проблема заключается в следующем: LXP помнит о существовании открытого элемента <xtag> и при достижении первого закрывающего тега </xtag> считает, что закрывается не Ter<table>, а тег<img>.
Если переменная table_width равна 100, а неременная width равна 10, неправильный результат будет выглядеть так:
<table width="100">
<tr>
<-- ОШИБКА: тег с пустым блоком должен заканчиваться символом / -->
<td><img src="images/spacer.g1f" w1dth="10"></td>
</tr>
</img>
В листинге 13.32 приведена правильная комбинация тегов <xtag>.