|
|
|
| Здравствуйте. Есть html код:
<templ:if name="sdss">
<b>arrrrrrr</b>
</templ:if>
<templ:if name="condition"> <!-- sdfsdf -->
<h1>condition: true</h1>
<templ:if name="cond2">
<b><i>555</i></b>
</templ:if>
<templ:else />
<h1>condition: false</h1>
</templ:if>
|
Нужно получить содержимое тегов <templ:if></templ:if>. т.е. для name="sdss":
, для name="condition":
<!-- sdfsdf -->
<h1>condition: true</h1>
<templ:if name="cond2">
<b><i>555</i></b>
</templ:if>
<templ:else />
<h1>condition: false</h1>
|
проблема в том, что внутри может быть неограниченное кол-во вложений (подобных тэгов).
Это то что у меня примерно получилось:
/<templ:(if)(.*)>(((?>[^<]+)|(?R))*)<\/templ:if>/isU
|
Помимо содержимого нужно еще получить значение аттрибута name. | |
|
|
|
|
|
|
|
для: localGhost
(23.03.2007 в 09:58)
| | Здесь парсер нужен - одним регулярным выражением не обойтись... Или тэг <templ:if name="condition"> - один на весь документ и после него больше ничего нет? | |
|
|
|
|
|
|
|
для: cheops
(23.03.2007 в 12:07)
| | по сути и пытаюсь создать парсер, эти тэги будут находиться в составе стандартных тегов хтмл страницы, и будут давать прделенные "указания" разборщику. подготовленный хтмл файл будет выглядеть примерно следующим образом:
<templ:comm name="showetime" />
<br /><br />
<templ:#> коментарий</templ:#>
<templ:if name="sdss">
<b>arrrrrrr</b>
</templ:if>
<templ:if name="condition"> <!-- sdfsdf -->
<h1>condition: true</h1>
<templ:if name="cond2">
<b><i>555</i></b>
</templ:if>
<templ:else />
<h1>condition: false</h1>
</templ:if>
[tpl:version]<br />
[tpl:1002]<br />
<templ:include name="block" /> <br /> <templ:include name="block2" />
<table>
<templ:loop name="select">
<tr>
<th>first</th>
<th>second</th>
</tr>
<templ:loop name="s[row.select:_nom]">
<tr>
<td>[row.select:_nom]</td>
<td>[tpl:202[row.s:_nom+1]]</td>
</tr>
</templ:loop>
</templ:loop >
</table>
<br />
<br />
<templ:content />
|
сложность вызывают тэги templ:if и templ:loop из-за вложенности.. с остальным разобрался. | |
|
|
|