2008 Aug 2008 4

Ar pozīciju () in XSL problēma ... vai ir?

Man bija šī strage problēmu, vienlaicīgi radot XSL šobrīd. Meklēja atbildes visā tīklā, bet couldnt atrast jebkādu .... Patiesībā es domāju! Es iedobt zinu, ko mana problēma bija, lai to, ko man meklēt?

Anyway! Tikai gadījumā, ja esat šo ļoti pašu problēmu pārāk un kaut ko no jaudas SPĒKĀ jums izdevās nolaisties uz šajā lapā ... jūs gribētu pateikties man t ... Un, ja esat nejauši nokļuvuši šajā lapā kādu dīvainu likteni un jums gadās būt XSL attīstītājs, DO pierakstiet šo tagad, turpmāk cēloni, ja kādu dienu, jūs risinātu šo jautājumu, tad FORCE nevarētu būt kopā ar jums.

Problēmas formulējums:
Man ir XML, kur ir divi mezgli ar vairākiem posteņiem tā, un starp šiem diviem punktiem posteņiem ir viens pret vienu korespondenci. Piemērā zemāk, katrs postenis mezglu <array name="PLAYURL" /> attiecas (atbilst pozīcija) attiecas uz posteni, kas mezgla <array name="SITENAME" />

<?xml version="1.0" encoding="utf-8"?>
<myplaylists>
<playlist>
<title>Best of Rest </title>
<array name="SITENAME">
<str>www.musicindiaonline.com</str>
<str>www.dhingana.com</str>
<str>www.raaga.com</str>
<str>www.smashits.com</str>
<str>www.desimusic.com</str>
<str>www.musicplug.in</str>
</array>
<array name="PLAYURL">
<str>http://www.musicindiaonline.com/123/</str>
<str>http://www.dhingana.com/play/123</str>
<str>http://www.raaga.com/123</str>
<str>http://ww.smashits.com/123</str>
<str>http://www.desimusic.com/123</str>
<str>http://www.musicplug.in/123</str>
</array>
</playlist>
</myplaylists>

Tagad, man ir cilpa, kur i cilpa ar <array name="SITENAME">, un es vēlos, lai saņemtu attiecīgo objektu panta attiecīgajā pozīcijā), kas <array name="PLAYURL">,

Ko jūs varētu kāds parasti mēģināt darīt, ir ...

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
play from : <a href="{../../array[@name='PLAY']/str[position()]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

Atvainojiet! Šis paradums strādāt ... Ak! Surpised ...

Tagad jūs, iespējams, vēlaties izmēģināt, kaut kas līdzīgs šim ...

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos"> <xsl:value-of select="position()"/></xsl:variable>
play from : <a href="{../../array[@name='PLAY']/str[$pos]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

Un atkal tas paradis strādāt ... Tagad jūs nesaskrāpē galvu, mēģinot sazināties ar ikvienu, kurš jūs domājat zina kādu XSL un varētu būt par jebkuru palīdzību ... jūs mēģināt jebkuru citu opciju ... un vēl tas paradis strādāt ... Nu! Thats kas notika ar mani atleast ...

Dont Izmisums! TRY THIS

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ pos-int ]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

Dont uzdot man, kāpēc IT WORKS. Izraisīt i dont ir tiesības iemesls ... ja jūs darīt! Lūdzu, piliens komentāru. Tas varētu būt diezgan noderīgs. Arī! Ja jums ir labāka virsrakstu šim amatam, do piliens mani līniju :)


2008 Aug 2008 2

Nosakot DOCTYPE XSL

Pagājušajā nedēļā es izveidojis progessive HTML / CSS izkārtojumu par klientu, pārbaudīta to IE6 un IE7 un FF 3, likās pilnīgi fine ... LĪDZ! izkārtojums gāja lejup manufacting ciklā. Tas neizdevās. Lappuses izkārtojuma elementi devos visur, kad HTML izkārtojums tika pārvērsta XSL un XML tai piemērotais ... nejaukais!!

Nevarēja gulēt ok nedēļas nogalē, sagaidot pirmdienas rītā, kad man būs noteikt šo SH **. Bet tagad ir nedaudz experince nodarbojas ar šiem veida situācijas (pārlūkprogramma quirks, es domāju), es zināju, ka tas bija jādara ar nekas cits, bet DOCTYPE .... un tas bija ...

Problēma:
Jūs vēlaties kontrolēt DOCTYPE, jo jūsu transformācija būs noklusējuma DOCTYPE skaidri, un tu izkārtojums būs noteikti par mētāt.

Risinājums:
XSLT specs nodrošina produkcijas metožu noteikt to DOCTYPE ir izvēle. Arī mums UI izstrādātāji, tad procentu tēmas būtu HTML produkcijas metodes un XML izejas metodes .

Labi! Pirms jūs saņemsiet garlaikoties, šeit ir noteikt.

Piem, ja Jums bija šāda DOCTYPE jūsu HTML versiju:. -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Tad XSL jūs būtu jābūt šādiem: -

<xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/loose.dtd" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent="yes" />

un visbeidzot! Vai pārliecinieties, ka jūsu XSLT produkcija paklausa ar DOCTYPE esat izvēlējies.


2008 4 maijs 2008

Ietver XSL iekšā XSL

Ja XML / XSL Transforms ir jūsu domian, tad ir reizes, kad mēs vēlamies peice dinamisku izmantojamā koda bibliotēkas vienumu (jāveic atkārtoti izmantojams). Ko es domāju, varbūt varētu padarīt skaidri ar šo piemēru scenāriju.

Iedomājieties, jūs veidojat mājas lapā (un, izmantojot XML, XSL transfroms Protams), un lielākā daļa lapām būtu Komentāri Modulis. Labi! tad nu jums kopēt vai ielīmējiet šo kodu katru lapas veidni (ko es dont ir pateikt, bet lai apkopes un pārstrādāt murgs) vai vēl labāk, jūs izveidojat ietvert failu, kas varētu tikt ierauts kur kādreiz jūs vēlaties to savā lapā ( s) ...
Tā kā mēs izveidot kādu XSL ietvert failu un iekļaut to iekšā citā XSL failu? Lūk, kā ...

Tikai, lai padarītu lietas skaidrs ... šeit ir ātrs sarakstu failiem varētu izveidot ... šeit, mēs arī info par augļiem un dārzeņiem par mātes lapā sauc pārtiku.

1. food.xml - XML ​​datu fails, kurā transformācija tiks piemērota
2. food.xsl - galvenais XSL fails, kas būs pārveidot savu food.xml
3. inc_fruits.xsl - XSL ietvert failu, kas to padara augļi dati
4. inc_vegtables.xsl - XSL ietvert failu, kas to padara vetetables dati

I dont domāju, ka man ir izskaidrot daudz, ka par minētajiem elementiem kodi, būs pašsaprotami ...

FOOD.XML


<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>

<vegetables>
<item name="spinach" moreinfo="http://www.spinach.com">Spinach is full of iron</item>
<item name="asparagus" moreinfo="http://www.asparagus.com">Asparagus contains loads of vitamin D </item>
<item name="fenugreek" moreinfo="http://www.fenugreek.com">Fenugreek is rich in vitamin C</item>
</vegetables>
</food>


FOOD.XSL


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="inc_fruits.xsl" />
<xsl:include href="inc_vegetables.xsl" />
<xsl:template match="/">
<html>
<head>
<title>Title</title>
</head>
<body>
<h3><xsl:value-of select="/food/description" /></h3>
Modification Date : <xsl:value-of select="/food/date" />
<hr/>
<h5> About Fruits</h5>
<xsl:call-template name="about_fruits"/>

<hr/>
<h5> About Vegetables</h5>
<xsl:call-template name="about_vegetables"/>

<hr/>
</ Body>
</ Html>
</ XSL: veidne>
</ XSL: stylesheet>


INC_FRUITS.XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_fruits">
<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


INC_VEGETABLES.XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_vegetables">
<xsl:for-each select="/food/vegetables/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Lejupielādēt visus iepriekš minētos failus šeit (248 downloads)


2008 Apr 4, 2008

Darbs ar XML mezglu atribūtus XSLT

Ja jūs izmantojat XML un XSL, tad jūs varētu būt saskārušies ar laiku, kad jums ir spēlēt aptuveni ar atribūtiem un vērtībām XML mezglu jums XSL. Tie ir kravas vietām ar ilgu aizdusu info par šo, bet neviens man konstatēja bija īsi un precīzi ... Tas NAV XML / XSL TUTORIAL, bet mans mēģinājums likt-kopā kaut kādas apkrāptu sarakstā ...

Paraugs XML ka mēs strādājam ar izskatās šādi ...

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>
</food>

Tātad Lets sākt pārveidot mūsu iepriekš XML izmantojot XSL

Piemērs 1: Parādīts vērtībā pie izvēlētā īpašības

<xsl:value-of select="/food/fruits/item[@name='orange']" /><br />
to get more information about <a href="{/food/fruits/item[@name='orange']/@moreinfo}" target="new" ><xsl:value-of select="/food/fruits/item[@name='orange']/@name" /> </a>

HTML rezultāts izskatīsies

Orange is the color and rich in vitamin C,
to get more information about <a href="http://www.orange.com" target="new">


Piemērs 2: looping caur un parādot visus XML atribūtu nosaukumus un to vērtības

<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>,
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>

HTML rezultāts izskatīsies


attribute name : name, attribute value : mango
attribute name : moreinfo, attribute value : http://www.mango.com
attribute name : name, attribute value : banana
attribute name : moreinfo, attribute value : http://www.banana.com
attribute name : name, attribute value : orange
attribute name : moreinfo, attribute value : http://www.orange.com
attribute name : name, attribute value : Papaya
attribute name : moreinfo, attribute value : http://www.papaya.com


Lejupielādēt visus iepriekš minētos failus šeit (243 downloads)



Noskatīties šajā vietā, es ņemšu glabāt atjaunināšanu šis ar jauniem secinājumiem ...


NDK sākums | Izsakot IT | Izsakot aukslējas | Izsakot Penmenship | Izsakot bijību | Izsakot Sevi