[ roberto555 @ 12.02.2008. 12:56 ] @
Pozdrav,

imam jedan problemčić kod transf.xml datoteke. Radi se o kontroli asp.net menu koja je povezana na xmlDataSource, a taj data source dobiva xml generiranjem iz dataseta kojeg opet punim iz baze... problem je što mi meni ima root stavku "Proizvodi", te su onda njene podstavke ovo što je u xml datoteci, nikako nemogu napraviti da mi ta stavka "Proizvodi" uopče ne postoji te da tu normalno dolaze ove iz xml datoteke, uvijek mi javlja neke greške (nema root elementa...).
Ispod su obje datoteke, pa bi molio ako mi netko može pomoći što trebam promjeniti u xsl datoteci da bi to radilo kako treba!?

-to mi treba za dinamičko kreiranje stavaka menija na temelju stavaka iz baze, svaka pomoć je više nego dobrodošla!

xsl datoteka:
Code:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" encoding="utf-8"/>
  <!-- Find the root node called Menus 
       and call MenuListing for its children -->


  <xsl:template match="/Menus">
    <Proizvodi>
      <xsl:call-template name="MenuListing" />
    </Proizvodi>
  </xsl:template>

  <!-- Allow for recusive child node processing -->
  <xsl:template name="MenuListing">
    <xsl:apply-templates select="Menu" />
  </xsl:template>

  <xsl:template match="Menu">
    <MenuItem>
      <!-- Convert Menu child elements to MenuItem attributes -->
      <xsl:attribute name="Text">
        <xsl:value-of select="Text"/>
      </xsl:attribute>
      <xsl:attribute name="ToolTip">
        <xsl:value-of select="Description"/>
      </xsl:attribute>
      <xsl:attribute name="NavigateUrl">
        <xsl:text>?sel=</xsl:text>
        <xsl:value-of select="Text"/>
      </xsl:attribute>            

      <!-- Call MenuListing if there are child Menu nodes -->
      <xsl:if test="count(Menu) > 0">
        <xsl:call-template name="MenuListing" />
      </xsl:if>
    </MenuItem>
  </xsl:template>
</xsl:stylesheet>


xml datoteka:
Code:

<?xml version="1.0" standalone="yes"?>
<Menus>
   <Menu>
    <MenuID>3</MenuID>
    <Text>Document</Text>
    <Description>Documentation</Description>
    <Menu>
      <MenuID>13</MenuID>
      <Text>Tutorials</Text>
      <Description>Tutorial Documentation</Description>
      <ParentID>3</ParentID>
    </Menu>
    <Menu>
      <MenuID>14</MenuID>
      <Text>Programmers</Text>
      <Description>Programm Documentation</Description>
      <ParentID>3</ParentID>
    </Menu>
  </Menu>
  <Menu>
    <MenuID>4</MenuID>
    <Text>Support</Text>
    <Description>Support</Description>
    <Menu>
      <MenuID>15</MenuID>
      <Text>FAQ</Text>
      <Description>Frequently Asked Questions</Description>
      <ParentID>4</ParentID>
    </Menu>
    <Menu>
      <MenuID>16</MenuID>
      <Text>Forum</Text>
      <Description>Forum</Description>
      <ParentID>4</ParentID>
    </Menu>
    <Menu>
      <MenuID>17</MenuID>
      <Text>Contact Us</Text>
      <Description>Contact Us</Description>
      <ParentID>4</ParentID>
    </Menu>
  </Menu>
  <Menu>
    <MenuID>5</MenuID>
    <Text>Download</Text>
    <Description>Download</Description>
  </Menu>
</Menus>


Zahvaljujem na pomoći.

[Ovu poruku je menjao roberto555 dana 13.02.2008. u 08:05 GMT+1]
[ roberto555 @ 12.02.2008. 19:37 ] @
mmix -> ispričavam se što sam stavio i u .NET, razlog je taj da sam nakon što sam postavio ovdje (u XML) vidio da tu baš i nije nešto aktivno, pa sam onda i u .NET u nadi da ću ondje prije dobiti odgovor, još jednom moja isprika!!
[ jablan @ 12.02.2008. 21:16 ] @
XML koji si okačio nije validan (fali mu otvoreni tag Menu):

jablan@jablan-desktop:~/tmp$ xsltproc test.xsl input.xml
input.xml:18: parser error : Opening and ending tag mismatch: Menus line 2 and Menu
</Menu>
^
input.xml:19: parser error : Extra content at the end of the document
<Menu>
^
unable to parse input.xml
[ roberto555 @ 13.02.2008. 07:06 ] @
sorry, ne znam kak se to desilo, prepravio sam, odmah ispod <Menus> tag-a je falio <Menu>
[ jablan @ 13.02.2008. 07:47 ] @
Pa u XSL-u ti je navedeno da na vrhu bude tag Proizvodi, u čemu je zapravo problem?
[ roberto555 @ 13.02.2008. 07:53 ] @
problem je u tome što bi ja htio maknuti da toga nema, a kad maknem javlja grešku kako sam gore opisao, znači trebam prepraviti taj xsl da toga nema, u tome je problem pa ako znaš molim te da pomogneš kako da prepravim taj xsl....
[ jablan @ 13.02.2008. 07:56 ] @
Pa koji treba da ti bude root element?
[ roberto555 @ 13.02.2008. 08:11 ] @
htio bi napraviti da mi stavke menija koje se vide kad je vidljiv jedan nivo budu ove koje nemaju parentID zadan u xml-u a te su sada u 2.nivou jer mi je prvi "Proizvodi", znači ko kad idem na svojstva tog menija i dodam mu ručno (no to je fiksno) te stavke, eto slike menija u privitku.

-ono što bi htio je da nema ove prve proizvodi nego da su tu ove koje su u drugom nivou.... nemogu ti reči što bi htio sa tim xsl-om jer kao što sma vidiš ne znam ga baš najbolje.... kužiš što hoču?

- ako je to uopče moguče što hoču na taj način napraviti?

[ priki @ 13.02.2008. 12:54 ] @
@roberto555

procunjaj malo ovde,
http://www.w3schools.com/xsl/
ima dobrih stvari za pogledati i komandi za upotrebiti



[Ovu poruku je menjao mmix dana 13.02.2008. u 14:18 GMT+1]
[ roberto555 @ 13.02.2008. 13:25 ] @
@priki
Citat:

procunjaj malo ovde,
http://www.w3schools.com/xsl/
ima dobrih stvari za pogledati i komandi za upotrebiti


- to je prvo mjesto na koje odem kad zapne na ovakvim stvarima, ali kao što sam naglasio nisam to još radio, no ok da se ne opravdavam zašto sam pitao.... (mislio sam da tome služi forum), snači ću se :)

[ priki @ 13.02.2008. 13:36 ] @
naravno da se može napraviti samo i da forum služi za pomoć
ali ne i za gotova rešenja koja ti tražiš

moraš napraviti jedan template sa parametrom ime noda ili parentID-om
a taj template treba da ti proverava koliko ima nivoa