2008 2 2008年 08月

XSLにDOCTYPEを設定する

先週私は、クライアントのプログレシブHTML / CSSのレイアウトを作成したIE6、IE7とFF 3でそれをテストし、完全に大丈夫だった...まで! レイアウトはmanufactingサイクルのさらに下行ってきました。 それに失敗しました。 HTMLレイアウトはそれに適用されるXSLとXMLに変換されたときにページレイアウトの要素だけであらゆる場所に行きました...がっかり!

私はこのSH **を修正する必要があります場合は、月曜日の朝の予想では、週末OK眠れませんでした。 しかし、今の状況、これらの種類(ブラウザの癖、私が意味する)を扱うにはほとんどexperinceを持って、私はそれがなくDOCTYPE他には何もしなければならなかった知っていた.... そしてそれは...

問題:
あなたの変換は明示的にデフォルトのDOCTYPEが含まれていますので、あなたは、DOCTYPEを制御したい、あなたのレイアウトはトスのために外となります。

ソリューション:
XSLTの仕様は、チョイスのDOCTYPEを設定するには、出力メソッドを提供します。 また、私達のUI開発者のために、興味のあるトピックは次のようになります。 HTML出力メソッドXML出力メソッド

よく! あなたが退屈する前に、ここで修正です。

例えば、あなたのHTMLのバージョンでは、次のDOCTYPEを持っている場合: -

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

その後、XSLには、次のものがなければならない: -

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

そして最後に! あなたのXSLTの出力は、選択したDOCTYPEに従うことを確認しないでください。


2008 2008年 5月 4

XSL内に含まれるXSL

XML / XSLがdomianで変換した場合、我々は(再利用可能ななされる)ライブラリ項目を使用する動的なコードのピースはしたい時があります。 私が意味するものは、おそらくこの例のシナリオをより明確にすることができます。

あなたのウェブサイト(および、XML、XSL transfroms ofcourseのを使用)を作成しており、ページのほとんどはコメントモジュールを持っいるでしょう想像してみてください。 よく! あなたはすべてのページテンプレート(私が言うが、メンテナンスや手直し悪夢作る持っていけない)、または、より良いにこのコードをコピーしたり貼り付けか、あなたがあなたのページにそれを望むどこまででプルアップすることがINCLUDEファイルを作成します( S)...
では、どのようにXSL INCLUDEファイルを作成し、別のXSLファイルの内部に含まれていますか ここでどのようには...

物事を明確にするため...ここにあなたが作成したファイルの簡単なリストは...ここで、我々は、食品と呼ばれる親ページに果物や野菜についての情報を含むでしょう。

1。 food.xml - 変換が適用される上のXMLデータファイル
2。 food.xsl - 私たちのfood.xmlを変えていく主なXSLファイル、
3。 inc_fruits.xsl - XSLは、果物のデータをレンダリングするファイルを含む
4。 inc_vegtables.xsl - XSLはv​​etetablesデータをレンダリングするファイルを含める

私は非常に説明していると思ういけない、上記の要素のコードは、自明だろう...

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:テンプレート>
オプション</ xsl:スタイルシート>


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>

(250ダウンロード)ここで、上記のすべてのファイルをダウンロード


2008 2008年 4 4

XSLTでXMLノードの属性の操作

XMLとXSLを使用する場合は、属性とXSLでXMLノードの値で遊んでする必要がある場合、あなたは、時間に出くわすかもしれません。 彼らはこのことについて長いったらしい情報を持つサイトの負荷ですが、私が見つけたどれも簡単かつ正確ませんでした...これは、XML / XSLチュートリアルではありませんが、私の試みは、チートリストのいくつかの並べ替えをまとめるために...

私たちが仕事するサンプルXMLは次のようになります。...

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

したがって、XSLを使用して、私たちの上記のXMLを変換を開始できます

例1:選択した属性に値を表示する

<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の出力結果は次のようになります

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


例2:ループして、すべてのXML属性名とその値を表示する

<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の出力結果は次のようになります


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


(244ダウンロード)ここで、上記のすべてのファイルをダウンロード



このスペースを見て、私は新しい知見でこれを更新しておこう...


NDKホーム | ITを表現 | 表現口蓋 | Penmenshipを表現 | 表現する素晴らしい | 自分を表現