parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

кто разбирается в XML, XSL, XPath ,DOM помогите кто сколько знает?

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 мы ничего не знаем(и знать нам не надо), её нужно просто скопировать.

Пробовал <xsl:copy/> но эта штука не копирует аттрибуты. Тут еще даже выбор по id не делал, хотел просто скопировать.
<?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'е.
Если у кого есть какие соображения помогите.