XSL即可扩展的样式表文件。 可以格式化xml的显示,也可以将xml转换成需要的另一种格式。
学习XSL必须熟悉XPath。XSL和XPath一样简单强大,容易学习。
1. XSL既然可以格式化xml的显示样式,我们先来看如何在xml中引用xsl文件
如下代码示例:
只需在xml文件的文档声明后面添加即可
2. XSL的格式
XSL也是一个标准的xml文件,它以xml文档声明开始,根元素必须是xsl:styleshee,同时根元素必须有version属性指定xsl的版本,和xmlns:xsl=” http://www.php.cn/”指定xsl命名空间,如下示例
3. Xsl要点 如下示例xml
<?xml version="1.0" encoding="utf-8" ?> <?xml-stylesheet type="text/xsl" href="pets-templates.xsl"?> <pets> <pig color="blue" weight="100"> <price>100</price> <desc>this is a blue pig</desc> </pig> <cat color="red" weight="9"> <price>80</price> <desc>this is a red cat</desc> </cat> <dog color="green" weight="15"> <price>80</price> <desc>this is a green dog</desc> </dog> <cat color="green" weight="15"> <price>80</price> <desc>this is a green cat</desc> </cat> <dog color="blue" weight="10"> <price>100</price> <desc>this is a blue dog</desc> </dog> <dog color="red" weight="9"> <price>80</price> <desc>this is a red dog</desc> </dog> </pets>
上面的xml在通过xsl格式化之后的显示效果如下:
1) xsl:template定义匹配节点的转换模板,属性match=”xpath expression”用来定义模板匹配的元素
如下定义匹配根节点的模板
<xsl:template match=”/”> </xsl:template>
2) xsl:for-each循环显示select=”xpath expression”选择节点的转换 (类似编程语言中的foreach语句),
如下示例,选择了pets下面的子元素,并循环显示子元素的几点名字:
<xsl:for-each select=”/pets/*”> <xsl:value-of select=”name()”/> </xsl:for-each>
3) xsl:if 元素条件显示节点(类似编程语言中的if语句)注意小于号大于号要分别用67bffed8d39c986beaddeed3e8cd5568替代
<xsl:if test=”@weight < 10”> <i>its weight is less than 10 km</i> </xsl:if>
4) xsl:choose 多分支条件显示 (类似编程语言中的switch语句)
<xsl:choose > <xsl:when test=”name() = ‘pig’”> <i>this is a pig</i> </xsl:when> <xsl:otherwise> <i>this is not a pig</i> </xsl:otherwise> </xsl:choose>
5) xsl:value-of 显示选择节点或者属性的值
选择子节点price
<xsl:value-of select=”pets/*/price”/>
选择属性weight
<xsl:value-of select=”pets/*/@weight”/>
6) xsl:attribute 构造xml节点的属性
用来向节点添加属性,例如:
<font> <xsl:attribute name=”color”><xsl:value-of select=”pets/*/@color”/></xsl:attribute> </font>
将输出
7) xsl:apply-templates 应用模板
如果xml文件结构比较复杂,可以定义多个template,然后使用
请看下面示例xslt文件pets-templates.xsl
完整的示例xsl文件:pets.xsl
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>lovely pets</title> <style type="text/css"> ul{margin:10px 0 10px 0;padding:0;width:400px;text-align:left;} li{height:60px;display:block;list-style:none;padding:4px;border:1px solid #f0f0f0;margin:5px;} </style> </head> <body> <center> <h1 id="lovely-nbsp-pets">lovely pets</h1> <ul> <xsl:for-each select="pets/*"> <li> <img align="right" alt="XSLT 構文 - XSLT を使用して .net の XML ドキュメントを変換するためのサンプル コードの詳細な説明" > <xsl:choose> <xsl:when test="name() = 'dog'"> <xsl:attribute name="src">http://www.php.cn/;/xsl:attribute> </xsl:when> <xsl:when test="name() = 'pig'"> <xsl:attribute name="src">http://www.php.cn/;/xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:attribute name="src">http://www.php.cn/@N00.jpg?1143660418</xsl:attribute> </xsl:otherwise> </xsl:choose> </img> <font> <xsl:attribute name="face">Courier</xsl:attribute> <xsl:attribute name="color"> <xsl:value-of select="@color"/> </xsl:attribute> <xsl:value-of select="name()"/> </font> said: "<xsl:value-of select="desc"/>" weight:<xsl:value-of select="@weight"/> <xsl:if test="@weight < 10"> <p> <i>its weight is less than 10 km</i> </p> </xsl:if> </li> </xsl:for-each> </ul> </center> </body> </html> </xsl:template> </xsl:stylesheet>
完整示例文件 pets-templates.xsl:
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>lovely pets</title> <style type="text/css"> ul{margin:10px 0 10px 0;padding:0;width:400px;text-align:left;} li{height:60px;display:block;list-style:none;padding:4px;border:1px solid #f0f0f0;margin:5px;} </style> </head> <body> <center> <h1 id="lovely-nbsp-pets">lovely pets</h1> <ul> <xsl:apply-templates select="pets" /> </ul> </center> </body> </html> </xsl:template> <xsl:template match="pets"> <xsl:apply-templates select="dog"></xsl:apply-templates> <xsl:apply-templates select="pig"></xsl:apply-templates> <xsl:apply-templates select="cat"></xsl:apply-templates> </xsl:template> <xsl:template match="dog"> <xsl:for-each select="."> <li> <img align="right" alt="XSLT 構文 - XSLT を使用して .net の XML ドキュメントを変換するためのサンプル コードの詳細な説明" > <xsl:attribute name="src">http://www.php.cn/;/xsl:attribute> </img> <font> <xsl:attribute name="face">Courier</xsl:attribute> <xsl:attribute name="color"> <xsl:value-of select="@color"/> </xsl:attribute> dog </font> said: "<xsl:value-of select="desc"/>" weight:<xsl:value-of select="@weight"/> <xsl:if test="@weight < 10"> <p> <i>its weight is less than 10 km</i> </p> </xsl:if> </li> </xsl:for-each> </xsl:template> <xsl:template match="pig"> <xsl:for-each select="."> <li> <img align="right" alt="XSLT 構文 - XSLT を使用して .net の XML ドキュメントを変換するためのサンプル コードの詳細な説明" > <xsl:attribute name="src">http://www.php.cn/;/xsl:attribute> </img> <font> <xsl:attribute name="face">Courier</xsl:attribute> <xsl:attribute name="color"> <xsl:value-of select="@color"/> </xsl:attribute> pig </font> said: "<xsl:value-of select="desc"/>" weight:<xsl:value-of select="@weight"/> <xsl:if test="@weight < 10"> <p> <i>its weight is less than 10 km</i> </p> </xsl:if> </li> </xsl:for-each> </xsl:template> <xsl:template match="cat"> <xsl:for-each select="."> <li> <img align="right" alt="XSLT 構文 - XSLT を使用して .net の XML ドキュメントを変換するためのサンプル コードの詳細な説明" > <xsl:attribute name="src">http://www.php.cn/@N00.jpg?1143660418</xsl:attribute> </img> <font> <xsl:attribute name="face">Courier</xsl:attribute> <xsl:attribute name="color"> <xsl:value-of select="@color"/> </xsl:attribute> cat </font> said: "<xsl:value-of select="desc"/>" weight:<xsl:value-of select="@weight"/> <xsl:if test="@weight < 10"> <p> <i>its weight is less than 10 km</i> </p> </xsl:if> </li> </xsl:for-each> </xsl:template> </xsl:stylesheet>
在c#.net中使用XslCompiledTransform转换xml文档,XslTransform也可以使用,但是这个类已经被微软标记为过时,最好不要再用了,如下代码示例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Xml; namespace UseXslt { class Program { static void Main(string[] args) { //声明XslTransform类实例 System.Xml.Xsl.XslCompiledTransform trans = new System.Xml.Xsl.XslCompiledTransform(); string xsltFile = @"X:\about.net\System.Xml\example\pets.xsl"; using (StreamReader rdr = new StreamReader(xsltFile)) { using (XmlReader xmlRdr = XmlReader.Create(rdr)) { //载入xsl文件 trans.Load(xmlRdr); } } string inputFile = @"X:\about.net\System.Xml\example\pets.xml"; string outputFile = @"X:\about.net\System.Xml\example\pets-out.htm"; //转化源文件输出到输出文件outputFile trans.Transform(inputFile, outputFile); } } }
有一点需要注意,使用XslCompiledTransform转换出来的文件,是一个html格式的,这个类会自动在html的head标签中添加一个未关闭的meta标签 ;微软帮我们想的太多了。
Xslt还可以指定参数,定义变量,有关这些方面请查看相关文档。
以上がXSLT 構文 - XSLT を使用して .net の XML ドキュメントを変換するためのサンプル コードの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

rssfeedsusexmltosyndicatecontent; parsingtheminvolvesloadingxml、navigating structure、and extractingdata.applicationsincludebuildingnewsaggretationsandtrackingpodcastepisodes。

RSSドキュメントは、XMLファイルを介してコンテンツの更新を公開することで機能し、ユーザーはRSSリーダーを介して通知をサブスクライブして受信します。 1。コンテンツパブリッシャーは、RSSドキュメントを作成および更新します。 2。RSSリーダーは、XMLファイルに定期的にアクセスして解析します。 3.ユーザーは、更新されたコンテンツを閲覧および読み取ります。使用例:TechCrunchのRSSフィードを購読するには、RSSリーダーへのリンクをコピーするだけです。

XMLを使用してRSSFeedを構築する手順は次のとおりです。1。ルート要素を作成してバージョンを設定します。 2.チャネル要素とその基本情報を追加します。 3.タイトル、リンク、説明を含むエントリ要素を追加します。 4. XML構造を文字列に変換して出力します。これらの手順を使用すると、有効なRSSFeedをゼロから作成し、リリース日や著者情報などの追加要素を追加することにより、機能を強化できます。

RSSドキュメントを作成する手順は次のとおりです。1。要素を含むルート要素を使用して、XML形式で書き込みます。 2。チャネル情報を説明する要素など。 3.要素を追加します。それぞれがコンテンツエントリを表します。 4.オプションで、コンテンツを濃縮するための要素を追加します。 5. XML形式が正しいことを確認し、オンラインツールを使用してパフォーマンスを最適化し、コンテンツを更新します。

RSSにおけるXMLの中心的な役割は、標準化された柔軟なデータ形式を提供することです。 1. XMLの構造とマークアップ言語の特性により、データ交換とストレージに適しています。 2。RSSはXMLを使用して標準化された形式を作成して、コンテンツの共有を容易にします。 3. RSSでのXMLの適用には、タイトルやリリース日などのフィードコンテンツを定義する要素が含まれます。 4.利点には標準化とスケーラビリティが含まれ、課題にはドキュメントの冗長および厳密な構文要件が含まれます。 5.ベストプラクティスには、XMLの有効性の検証、シンプルな状態を維持し、CDATAの使用、定期的に更新されます。

rssfeedsarexmldocumentsusedforcontentaggregationanddistribution.totransformthemintoreadablecontent:1)parsethexmlusinglibrarieslibrarieslibrarieslibrarieslibrarieslibrarieslibrarieslibraries.2)heandlederentrssiversions andpotentialparsingerrors.3)変換された拡張型拡張型のfienderidederidrederidederidederidedionderiondiontiontiontiontiontiontiontiontional

JSonFeedは、JSONベースのRSSの代替品であり、その利点のシンプルさと使いやすさがあります。 1)JSonFeedはJSON形式を使用しますが、これは簡単に生成して解析できます。 2)動的生成をサポートし、最新のWeb開発に適しています。 3)JSonFeedを使用すると、コンテンツ管理の効率とユーザーエクスペリエンスが向上する可能性があります。

RSSFeedsを構築、検証、公開する方法は? 1。ビルド:Pythonスクリプトを使用して、タイトル、リンク、説明、リリース日など、RSSFeedを生成します。 2。検証:FeedValidator.orgまたはPythonスクリプトを使用して、RSSFeedがRSS2.0標準に準拠しているかどうかを確認します。 3.公開:RSSファイルをサーバーにアップロードするか、フラスコを使用してRSSFeedを動的に生成および公開します。これらの手順を通じて、コンテンツを効果的に管理および共有できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Dreamweaver Mac版
ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
