2008 Avgust 2008 4

Problem s položaja () v XSL ... ali je to?

Sem imel to težavo strage med ustvarjanjem XSL danes. Iskali odgovore v celotni mreži, vendar strjena najdete vse .... Pravzaprav mislim! Trud sem vedel, kaj je moj problem, tako da kaj iščem?

Kakorkoli že! Samo v primeru, da so to zelo isti problem preveč in nekako z močjo delovne vam je uspelo pristati na tej strani, ..., ki bi se zahvalil mi ton ... In, če ste po nesreči pristal na tej strani nekaj čudno usodo in se zgodi, da razvijalec XSL, DO si zapišite to zdaj, v prihodnje vzrok, če nekega dne, si obraz s tem vprašanjem, potem FORCE morda ne bo z vami.

Problem izjava:
Imam XML, kjer sta dva vozlišča z več postavk v njem in predmeti med tema dvema vozlišč imajo eno na eno korespondenco. V spodnjem primeru je vsak element v vozlišču <array name="PLAYURL" /> nanaša (ustrezni položaj) na postavko, na vozlišču <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>

Zdaj imam zanko, kjer sem zanka skozi <array name="SITENAME">, in želim, da bi dobili ustrezen element (na ustreznem položaju) v <array name="PLAYURL">,

Kaj bi normalno poskusil storiti, je ...

<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>

Žal!! TA Navada DELO ... Ah!! Surpised ...

Zdaj bi si verjetno želeli, da preizkusite, kaj takega ...

<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>

In spet ta navada delati ... Zdaj si praskal glavo, poskuša stopiti v stik vsem, ki mislite, da ve nekaj XSL in bi lahko katero koli pomoč ... poskusite vse druge možnosti ... in še vedno navada, da deluje ... No! To kar se mi je zgodilo atleast ...

Dont Obup! 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 Vprašaj me zakaj to deluje. Vzrok i dont imajo pravico razlog ... če vam! Prosim, spustite komentar. Morda bi bilo zelo koristno. Tudi! Če imate boljši naslov za to delovno mesto, ne spusti me linije :)


2008 Avgust 2008 2

Nastavitev DOCTYPE v XSL

Prejšnji teden sem ustvaril progessive HTML / CSS postavitev za stranko, jo testirali v IE6, IE7 in FF 3, zdelo popolnoma v redu ... dokler ne! Postavitev je šel naprej po manufacting cikla. To ni uspelo. Elementi postavitev strani šel po vsem mestu, ko je bila postavitev pretvori v HTML in XML XSL se uporablja za to ... Škoda!

Ne morem spati ok čez vikend, v pričakovanju ponedeljek zjutraj, ko bom moral popraviti to SH **. Zdaj pa imajo malo doživetje pri obravnavi tovrstnih situacijah (brskalnika quirks, mislim), sem vedel, da je imela opraviti z nič drugega kot DOCTYPE .... in bilo je ...

Problem:
Hočeš nadzor nad DOCTYPE, saj bo vaša transformacija vključuje privzeto DOCTYPE izrecno, in ti postavitev bo jasno zakaj kretnjo.

Rešitev:
XSLT očala zagotavlja izhodne metode, da se določi, da DOCTYPE za lastni izbor. Tudi za nas UI razvijalci, bi teme interesa lahko HTML metode izhodne in XML metode izhod .

No! preden boste dobili dolgčas, tukaj je rešitev.

Na primer, če bi imeli naslednje DOCTYPE v vašem HTML različica. -

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

Nato v XSL bi morali imeti: -

<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" />

in na koncu! se prepričajte, da vaš XSLT izhod uboga na DOCTYPE, ki ste jih izbrali.


2008 4. maj 2008

Vključi XSL znotraj XSL

Če XML / XSL preoblikuje je vaš domian, nato pa so časi, ko želimo peice dinamične kode, ki se uporabljajo knjižnice element (ki se je ponovno uporabiti). Mislim, bi verjetno bolj jasno, na primer s tem scenarijem.

Predstavljajte si, da ustvarjate spletno stran (in z uporabo XML, XSL transfroms gredo zraven) in večina strani bi imela Komentarji modula. No! potem kopirate ali prilepite to kodo v vsako stran (predlogo, ki dont sem rekel, vendar se za vzdrževanje in predelava nočno moro) ali še bolje, ustvarite Vključi datoteko, ki bi ga lahko potegnil v povsod, kjer želite, da na svojo stran ( i) ...
Torej, kako bomo POVZROČIJO XSL Vključi datoteko in jo vključujejo v notranjosti druge datoteke XSL? Tukaj je, kako ...

Samo, da bi stvari jasno ... tukaj je hiter seznam datotek, ki bi si ustvarili ... tukaj bomo tudi informacije o sadju in zelenjavi v matično stran, imenovano hrane.

1. food.xml - xml datoteko podatkov, na katerih bo treba uporabiti preoblikovanje
2. food.xsl - Glavni XSL datoteko, ki preoblikujejo naše food.xml
3. inc_fruits.xsl - XSL vsebuje datoteko, ki bo postala sadje podatkov
4. inc_vegtables.xsl - XSL vsebuje datoteko, ki bo postala vetetables podatkov

I dont mislim, da imajo veliko razložiti, bodo kode za zgornje elemente, so samoumevne ...

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: template>
</ 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>

Prenesite vse zgoraj navedene datoteke tukaj (249 prenosov)


2008 4. april 2008

Delo z vozlišče atributi XML v XSLT

Če uporabljate XML in XSL, morda pa ste naleteli v času, ko je igral z atributi in vrednot XML vozlišč v vas XSL. So obremenitve strani z dolgo daha informacij o tem, vendar nobena ni bila sem našel kratek in natančen ... To ni XML / XSL TUTORIAL, ampak moj poskus, da bi dal, skupaj neke vrste goljufija seznamu ...

Vzorec XML, da bomo delo z izgleda takole ...

<?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>

Torej Lets začeli preobrazbo našega nad XML z uporabo XSL

Primer 1: Prikaz vrednosti na izbran Attribute

<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 rezultat bo izgledal

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


Primer 2: zanka skozi vse XML in prikazovanje imena atributov in njihove vrednosti

<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 rezultat bo izgledal


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


Prenesite vse zgoraj navedene datoteke tukaj (243 prenosov)



Oglejte si ta prostor, bom to vodi posodabljanje z novimi ugotovitvami ...


NDK domov | Ki ga izraža | Izražanje Okus | Izražanje Penmenship | Izražanje Awe | Izražanje Sebe