| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
527 20.07.2003 17:50 / 20.07.2003 17:53
возникла необходимость сделать независимое от самого xml трансформирование. А именно например из<?xml version="1.0"?>
<booklist>
<item id="005">
<category>scripting</category>
<release_date>1998-04-21</release_date>
<title>instant javascript</title>
<price>$49.34</price>
</item>
<item id="407">
<category attr="some atr">asp</category>
<release_date>1998-05-10</release_date>
<title>instant active server pages</title>
<price>$23.45</price>
</item>
<item id="059">
<category>html</category>
<release_date>1998-03-07</release_date>
<title>instant html</title>
<price>$34.23</price>
</item>
</booklist>получить в зависимости от id определенный item <item id="059">
<category>html</category>
<release_date>1998-03-07</release_date>
<title>instant html</title>
<price>$34.23</price>
</item>Причем про саму структуру дерева item мы ничего не знаем(и знать нам не надо), её нужно просто скопировать.<?xml version="1.0"?> <xsl:stylesheet xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </xsl:template> </xsl:stylesheet>РЕЗУЛЬТАТ:
<booklist> <item> <category>scripting</category> <release_date>1998-04-21</release_date> <title>instant javascript</title> <price>$49.34</price> </item> <item> <category>asp</category> <release_date>1998-05-10</release_date> <title>instant active server pages</title> <price>$23.45</price> </item> <item> <category>html</category> <release_date>1998-03-07</release_date> <title>instant html</title> <price>$34.23</price> </item> </booklist>Я тут подумал может через DOM как-нить сделать, но чето не сильно его пока освоил. Может кто разбирается в реализации DOM в parser'е.