2008 13. august 2008

Tokenizing Delimited String sees XSL

Kui Teie nõue on jagada sõlme väärtuse XML, mis sisaldab delimited string väärtuse, võetakse iga ühiku kohta, siis olete jõudnud õigesse kohta ... on pilk näites. Kui te olete tuttav natuke XML ja XSL ... Ma ei usu, siis oleks vaja mingit selgitust.
Ka selles näites sisaldab kasutamine XSL funktsioone nagu xsl: call-template, xsl: alamstring-enne, xsl: alamstring-pärast, kui see, mida olete pärast.

XML ümber (food.xml): -
Endale ülesandeks on tokenize string piiritletud koma, mis märksõnaga "märksõnad"

<?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>
<keywords>Fruits, Vegetables, Pulses, Meat, Cereals </keywords>
</food>

XSL (food.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="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>XSL 1.0 Delimited String Tokeniser</title>
</head>
<body>
<xsl:value-of select="food/meta"/>
<div >
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="food/keywords" />
<xsl:with-param name="delimitr" select="','" />
</xsl:call-template>

</div>
</body>
</html>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="string" />
<xsl:param name="delimitr" />
<xsl:choose>
<xsl:when test="contains($string, $delimitr)">
<div style="border:1px solid red;">
<h3><xsl:value-of select="substring-before($string,$delimitr)" /></h3>
<xsl:variable name="data" select="substring-before($string,$delimitr)"/>
</div>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="substring-after($string, $delimitr)" /><xsl:with-param name="delimitr" select="$delimitr" /></xsl:call-template>
</xsl:when>
<xsl:otherwise>
<div style="border:1px solid red;">
<h3><xsl:value-of select="$string" /></h3>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

Lõplikud väljund HTML: -

<div>
<div style="border: 1px solid red;">
<h3>Fruits</h3>
</div>
<div style="border: 1px solid red;">
<h3> Vegetables</h3>
</div>
<div style="border: 1px solid red;">
<h3> Pulses</h3>
</div>
<div style="border: 1px solid red;">
<h3> Meat</h3>
</div>
<div style="border: 1px solid red;">
<h3> Cereals </h3>
</div>
</div>

Ütlematagi selge ... lihtsalt muuta parameetri "delimitr", et eraldaja oma valik


2008 4. august 2008

Probleem positsioon () in XSL ... või on?

Mul oli see strage probleemi luues XSL täna. Otsis vastuseid kogu net, kuid couldnt leia .... Tegelikult ma arvan! Ma varal teada, mis mu probleem oli, et mida ma pean otsima?

Igatahes! Igaks juhuks teil on seesama probleem liiga ja millegipärast poolt võimu sunnivad sind õnnestus maanduda sellel lehel ... siis oleks tänada mind tonni ... Ja kui sa oled kogemata maandunud see leht mingil kummalisel saatust ja teil juhtub olema XSL arendaja, ei tee teadmiseks KOHE, tuleviku põhjusega, kui ühel päeval, siis nägu selles küsimuses, siis FORCE ei pruugi olla koos sinuga.

Probleem avaldus:
Mul on XML, kus on kaks tippu, kus mitu elementi ning seda teemad nende kahe tippude 00:59 kirjavahetus. Alltoodud näites iga objekti sõlme <array name="PLAYURL" /> seotud (positsioon), et toode on sõlm <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>

Nüüd mul on loop, kus i ahela kaudu <array name="SITENAME">, ja ma tahan saada seotud objekti (at positsioon) in <array name="PLAYURL">,

Mis siis oleks normaly proovida teha, on ...

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

SORRY! SELLE harjumus tööd ... Ah!! Surpised ...

Nüüd sa ilmselt tahad proovida, midagi sellist ...

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

Ja jälle see harjumus tööd ... Nüüd kriimustada oma pead, püüdes pöörduda igaüks, kes te arvate, teab mõned XSL ja võiks mingit abi ... püüad iga teine ​​võimalus ... ja veel see harjumus tööd ... Noh! Thats mis juhtus minuga atleast ...

Dont meeleheidet! Proovige seda

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

Ära küsi, miks see toimib. Sest ma dont on õigus põhjus ... kui sa teed! Palun ärge tilk kommentaari. See võib olla päris kasulikuks. Ka! kui teil on parem JAOTIS sellele ametikohale, ei tilk mulle joone :)


2008 4. mai 2008

Kaasa XSL sees XSL

Kui XML / XSL Muudab su Domian, siis on aegu, kui tahame tükk Dynamic koodi kasutada raamatukogu objekt (tuleb teha korduvkasutatavad). Mida ma mõtlen, ilmselt võiks teha selgemaks selle näiteks stsenaariumi.

Kujutage ette, olete loomas kodulehel (ja kasutades XML, XSL transfroms ofcourse) ja enamik lehti oleks Kommentaarid moodul. Hästi! siis kas sa kuuled või kleebi see kood iga lehekülje malli (mis ma dont on öelda, kuid teeb hoolduse ja ümbertegemine õudusunenägu) või veel parem, loote sisaldab faili, mida saaks tõmmatakse kus iganes sa tahad seda oma lehe ( s) ...
Nii Kuidas me loome XSL sisaldab faili ja lisada selle sees teise XSL faili? Siin on, kuidas ...

Just selleks, et asjad selgeks ... siin on kiire failide nimekirja, et teil oleks luua ... siin me ka infot puuviljade ja köögiviljade vanem leht nimega toitu.

1. food.xml - XML ​​fail mis ümberkujundamine hakatakse kohaldama
2. food.xsl - peamised XSL faili, mis muudab meie food.xml
3. inc_fruits.xsl - XSL sisaldab faili, mis muudab puu andmed
4. inc_vegtables.xsl - XSL sisaldab faili, mis muudab vetetables andmed

Ma ei usu mul selgitada palju, koodid nimetatud elementidest, on mõistetav ...

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


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>

Lae kõigi eespool failid siin (256 downloads)


2008 4. aprill 2008

Töö XML Node atribuudid XSLT

Kui te kasutate XML ja XSL, siis oleks kohanud aeg, kui teil on mängida atribuudid ja väärtused XML tippe te XSL. Nad on koormatele saite pika Hengästynyt infot, kuid ükski leidsin oli lühike ja täpne ... See ei ole XML / XSL juhendaja, kuid minu katse panna-üheskoos mingi cheat nimekirja ...

Proovi XML, et me koostööd näeb välja selline ...

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

Nii saab alustada muudavad meie üle XML kasutada XSL

Näide 1: Kaubad väärtusega valitud omadus

<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 tulemus hakkab nägema

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


Näide 2: kokkujooksmine läbi ja näitab kõiki XML atribuutide nimed ja nende väärtused

<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 tulemus hakkab nägema


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


Lae kõigi eespool failid siin (248 downloads)



Jälgi seda ruumi, ma hoian ajakohastamine seda avastustega ...


NDK kodus | Väljendades IT | väljendamine Maitse | väljendamine Penmenship | väljendamine Awe | väljendamine Myself