Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pretvaranje XML dokumenta u HTML forme pomocu XSLT HITNO

[es] :: XML :: Pretvaranje XML dokumenta u HTML forme pomocu XSLT HITNO

[ Pregleda: 4017 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Djukic M
Djukic M

Član broj: 95536
Poruke: 11
*.ADSL.neobee.net.



Profil

icon Pretvaranje XML dokumenta u HTML forme pomocu XSLT HITNO13.06.2006. u 22:56 - pre 217 meseci
Potrebna mi je pomoc hitno !!!
Imam xsl dokument koji je dat dalje u tekstu

<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Sema - html forme.xsd">
<control>
<Button>
<name>Button</name>
<type>reset</type>
<valueButton>Reset</valueButton>
</Button>
</control>
<control>
<CheckBoxGroup>
<name>Check Box</name>
<CheckBox>
<value>DA</value>
<checked>checked</checked>
</CheckBox>
</CheckBoxGroup>
</control>
<control>
<RadioButtonGroup>
<name>Radio Button</name>
<RadioButton>
<value>DA</value>
<checked>checked</checked>
</RadioButton>
</RadioButtonGroup>
</control>
<control>
<SelectMenuGroup>
<name>Select menu</name>
<SelectMenu>
<Select>
<size>2</size>
<multiple>multiple</multiple>
</Select>
<Option>
<value>ime opcije</value>
<selected>selected</selected>
</Option>
</SelectMenu>
</SelectMenuGroup>
</control>
<control>
<TextArea>
<name>Upisi text</name>
<cols>3</cols>
<rows>5</rows>
</TextArea>
</control>
<control>
<TextBox>
<name>Unesi text</name>
<size>25</size>
</TextBox>
</control>
</Form>

Potrebno je da iyvrsim XSLT transformaciju i dobijem sve navedene HTML forme
Odredjeni dio sam resio i onda sam zapeo

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="/">
<html>
<head>
<title>XSLT transformacija</title>
</head>
<body>
<h1>HTML forme</h1>

<xsl:apply-templates select="Form"/>
</body>
</html>
</xsl:template>

<xsl:template match="Form">
<xsl:apply-templates select="control"/>
</xsl:template>

<xsl:template match="control">
<xsl:apply-templates />
</xsl:template>

<xsl:template match="Button">
<p></p>
<form method="get" >
<h2><xsl:value-of select="name"/></h2><p></p>
<xsl:choose>
<xsl:when test="type[.='submit']"><input type="submit" value="Submit"/></xsl:when>
<xsl:when test="type[.='reset']"><input type="reset" value="Reset"/></xsl:when>
<xsl:otherwise><input type="button" value="Button"/></xsl:otherwise>
</xsl:choose>
</form>
</xsl:template>

poterbo je da napravim ostale template

Problem je i to sto se izraz " &lt; input type="submit" value="send"/&gt; " (naravno bez navodnika) indenticno prepisuje u HTML kod a meni je potrebno da izgleda ovako : " <input type="submit" value="send"/>

Postoji jos jedan problem a to je sto je potrebno da iscitavam value iy xml dokumenta Kao na pr pomocu <xsl:value-of select="value" /> i onda to da se ispisuje kao vrednost value u HTML-u ( value="send" umesto send da se upise ono sto pise u xml dokumentu)
Djuka
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Pretvaranje XML dokumenta u HTML forme pomocu XSLT HITNO14.06.2006. u 08:08 - pre 217 meseci
Pogledaj xsl:attribute tag.
Citat:
Djukic M: Problem je i to sto se izraz " &lt; input type="submit" value="send"/&gt; " (naravno bez navodnika) indenticno prepisuje u HTML kod a meni je potrebno da izgleda ovako : " <input type="submit" value="send"/>

Pa nemoj da ga pišeš sa lt i gt već napiši sa < i >. Ne razumem u čemu je problem.
 
Odgovor na temu

Djukic M
Djukic M

Član broj: 95536
Poruke: 11
*.ADSL.neobee.net.



Profil

icon Re: Pretvaranje XML dokumenta u HTML forme pomocu XSLT HITNO14.06.2006. u 08:50 - pre 217 meseci
Citat: Pa nemoj da ga pišeš sa lt i gt već napiši sa < i >. Ne razumem u čemu je problem.

Problem je u tome sto ako stavim < i > ne mogu da napisem izraz kao npr. Zelim da unutar BODY dela HTML dokumenta stoji <input type="submit" value="send"> ss tim sto bi te vrednosti trebale da se menjaju kako se menja vrednosti parametara type i value u XML dokumnetnu , posto vrsim XSLT tranfromaciju znak < pisem kao lt jer jedino tako mogu da napisem zeljeni tekst koji zelim u HTML . Problem je sto kada se izvrsi transformacija XML dokunmenta u BODY delu HTML-a se umesto znaka < pojavi &lt; a meni je potrebno <. Primer iz koda:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="/">
<html>
<head>
<title>XSLT transformacija</title>
</head>
<body>
<h1>HTML forme</h1>

<xsl:apply-templates select="Form"/>
</body>
</html>
</xsl:template>

<xsl:template match="Form">
<xsl:apply-templates select="control"/>
</xsl:template>

<xsl:template match="control">
<xsl:apply-templates />
</xsl:template>

<xsl:template match="Button">
<p></p>
<form method="get" >
<h2><xsl:value-of select="name"/></h2><p></p>
<xsl:choose>
<xsl:when test="type[.='submit']"><input type="submit" value="Submit"/></xsl:when>
<xsl:when test="type[.='reset']"><input type="reset" value="Reset"/></xsl:when>
<xsl:otherwise><input type="button" value="Button"/></xsl:otherwise>
</xsl:choose><p></p>

<!-- &lt; input type="submit" value="send"/&gt;
&lt;input type="submit" -->
</form>
</xsl:template>

Zelim da napisem <xsl:when test="type[.='submit']"><input type="submit" value="Submit"/></xsl:when>

&lt; input type="submit" value="send"/&gt; // na ovaj nacin mogu da pisem type koji zelim a ne da uzimam samo ponudjeni jer ako se ispunjava uslov when test on ce da ispise onaj izraz za koji je uslov ispunjen. Potrebno mi je da umesto value="send" imam nesto poput resavanja izraza value="<xsl:value-of select="value"/>" ...

Ako napisem kao gornji kod onda mi je value ogranicen onim sta pise a meni je potebno da se value menja kada se promeni njegova vrednost u XML dokumentu
Djuka
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Pretvaranje XML dokumenta u HTML forme pomocu XSLT HITNO14.06.2006. u 09:59 - pre 217 meseci
Kao prvo, koristi CODE tag.

Kao drugo, rekao sam ti već da pogledaš xsl:attribute. Da nacrtam:
Code:

<input>
    <xsl:attribute name="value">
        <xsl:value-of select="value"/>
    </xsl:attribute>
</input>

Ovo će ti iskopirati polje value iz xmla u value atribut input taga u rezultujućem htmlu.
 
Odgovor na temu

utvara
Slobodan Utvić
Vivvo CMS lead developer, Spoonlabs
d.o.o. Beograd

Član broj: 677
Poruke: 87
..mtsns-ns.customer.sbb.co.yu.

Jabber: utvara@elitesecurity.org
ICQ: 28140625
Sajt: utvara.blogspot.com


Profil

icon Re: Pretvaranje XML dokumenta u HTML forme pomocu XSLT HITNO16.06.2006. u 02:05 - pre 217 meseci
Evo ti nešto na tu temu što sam radio. Nadam se da ce pomoći.

Code:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/Modules/Kategorije/kategorije.xsl"?>
<main>
<module>Kategorije</module>
    <user group="super_user" popust="0">utvara</user>
    <action type="insert_confirm" module="Kategorije">
        <data_input name="id" len="10"/>
        <data_input name="naziv" len="100"/>
        <data_input name="gtree" len="255" type="enum">
            <item value="0" selected="true">Root</item>
            <item value="001">-RPG</item>
            <item value="001002">--Dungeons &amp; Dragons</item>
            <item value="001002001">---Avanture</item>
            <item value="001002003">---Campaign settings</item>
            <item value="001002003001">----Forgotten Realms</item>
            <item value="001002003002">----Ravenloft</item>
            <item value="001002005">---Dodaci</item>
            <item value="001003">--AD&amp;D</item>
        </data_input>
    </action>
</main>


Code:

<xsl:template match="action">
    <xsl:variable name="lang">SR</xsl:variable>
    <xsl:variable name="module_doc">../../lang/<xsl:value-of select="@module" />.xml</xsl:variable>
    <xsl:choose>
        <xsl:when test="@type='message'">
            <p id="error_message">
            <xsl:value-of select="document($module_doc)/module/lang[@id=$lang]/word[@id = 'missing']" />
            <xsl:for-each select="note">
                <xsl:copy-of select="." />
            </xsl:for-each>
            <xsl:for-each select="fali">
                <xsl:variable name="aaa"><xsl:value-of select="@field" /></xsl:variable>
                <div class="missing"><xsl:value-of select="document($module_doc)/module/lang[@id=$lang]/word[@id = $aaa]" /></div>
            </xsl:for-each>
            </p>
        </xsl:when>
        <xsl:when test="@type='insert_confirm' or @type='update_confirm' or @type='file_upload_check'">
            <div class="inform">
                <form name="form_{@module}" enctype="multipart/form-data" method="post" action="admin.php?module={@module}&amp;metod={@type}&amp;id={@id}" >
                <table width="100%">
                <xsl:for-each select="data_input">
                    <xsl:choose>
                        <xsl:when test="@name = 'id'">
                            <input name="frm_{@name}" type ="hidden" value="{value}" />
                        </xsl:when>
                        <xsl:otherwise>
                            <tr>
                            <xsl:variable name="aaa"><xsl:value-of select="@name" /></xsl:variable>
                            <td class="f_left"><xsl:value-of select="document($module_doc)/module/lang[@id=$lang]/word[@id = $aaa]" /></td>
                            <td class="f_right">
                            <xsl:choose>
                                <xsl:when test="@type = 'set'">
                                    <select name="frm_{@name}[]" size="5" multiple="multiple" class="q">
                                    <xsl:for-each select="item">
                                        <option value="{@value}">
                                            <xsl:if test="@selected='true'"><xsl:attribute name="selected">selected</xsl:attribute></xsl:if>
                                              <xsl:value-of select="." />
                                          </option>
                                    </xsl:for-each>
                                    </select>
                                </xsl:when>
                                
                                <xsl:when test="@type = 'enum'">
                                    <select name="frm_{@name}" class="q">
                                    <xsl:for-each select="item">
                                        <option value="{@value}">
                                            <xsl:if test="@selected='true'"><xsl:attribute name="selected">selected</xsl:attribute></xsl:if>
                                              <xsl:value-of select="." />
                                          </option>
                                    </xsl:for-each>
                                    </select>
                                </xsl:when>                    
                                
                                <xsl:when test="@type = 'file'">
                                    <input type="file" name="frm_{@name}" class="q" />
                                </xsl:when>
                                
                                <xsl:otherwise>    
                                    <xsl:choose>
                                        <xsl:when test="@len &gt; 256">
                                            <textarea name="frm_{@name}" cols="65" rows="5" class="q"><xsl:value-of select="value" /></textarea>
                                        </xsl:when>
                                        
                                        <xsl:otherwise>
                                            <input name="frm_{@name}" type ="textfield" value="{value}" maxlength="{@len}" class="q">
                                                <xsl:attribute name="size">
                                                    <xsl:choose>
                                                    <xsl:when test="@len &gt; 65">65</xsl:when>
                                                    <xsl:otherwise><xsl:value-of select ="@len" /></xsl:otherwise>
                                                    </xsl:choose>
                                                </xsl:attribute>
                                            </input>
                                        </xsl:otherwise>
                                    </xsl:choose>
                                </xsl:otherwise>
                            </xsl:choose>
                            </td>
                            </tr>
                        </xsl:otherwise>
                    </xsl:choose>
                </xsl:for-each>
                <xsl:for-each select="hidden">
                    <input name="frm_{@name}" type ="hidden" value="{.}" />
                </xsl:for-each>
                <tr><td><input type="submit" name="Submit" value="Posalji"  class="submit" /></td></tr>
                </table>
                </form>
            </div>
        </xsl:when>
        <xsl:when test="@type = 'delete_confirm'">
            <a href="admin.php?module={@module}&amp;metod={@type}&amp;id={@id}"><xsl:value-of select="message" /></a>
        </xsl:when>
    </xsl:choose>
</xsl:template>


Hint: xml je genereisan dinamički na osnovu strukture tabele (konkretno se radi o mySQLu).

poz, utvara
 
Odgovor na temu

Djukic M
Djukic M

Član broj: 95536
Poruke: 11
*.ADSL.neobee.net.



Profil

icon Re: Pretvaranje XML dokumenta u HTML forme pomocu XSLT HITNO20.06.2006. u 16:32 - pre 217 meseci
Uspjeo sam da resim
Mnogo hvala na pomoci
Pozz
Djuka
 
Odgovor na temu

[es] :: XML :: Pretvaranje XML dokumenta u HTML forme pomocu XSLT HITNO

[ Pregleda: 4017 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.