Rumah pembangunan bahagian belakang Tutorial XML/RSS 实例简析XPath串函数和XSLT

实例简析XPath串函数和XSLT

Mar 01, 2017 pm 04:53 PM
xpath xslt

XPath(xml Path language)是一种处理XML文档段的语言。XSLT(Extensible Stylesheet Language Transformations,可扩展样式表语言转换)使用XPath描述表达式和地址路径控制节点选取。XSLT可以将XML转换为各种格式,如HTML或其他格式。 
    下面用一个邮件合并程序来简要说明XPath的串函数。下面的XML文件中包含数据,XSLT文件中包含对邮件格式的定义。MSXML4.0对XML文档应用样式表,产生一个合并的邮件文本文档。
XML文件 Letter.xml

<?xml version="1.0" encoding="UTF-8"?>
<Letter>
  <Date>July 17, 2002</Date>
  <To>
     <FirstName>Vicky</FirstName>
     <LastName>P</LastName>
     <Sex>Male</Sex>
  </To>
  <Address>
     <Line1>900 National Pkwy</Line1>
     <Line2>Suite 105</Line2>
     <City>Bellevue</City>
     <State>WA</State>
     <Zip>98007</Zip>
     <Country>USA</Country>
  </Address>
  <Subject>ESTATE OF JOHN DOE / FILE NO. 12345.6789</Subject>
  <Text>
     Please pay the PRoperty taxes as soon as possible.
  </Text>
  <Sender>
     <FirstName>John</FirstName>
     <LastName>M</LastName>
     <Title>Sr. Tax Consultant</Title>
  </Sender>
</Letter>
Salin selepas log masuk

XSLT样式表文档 Letter.xsl

<?xml version=&#39;1.0&#39; encoding="utf-8"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="yes"/>
<xsl:variable name="NL" select="&#39;&#xA;&#39;" />
<xsl:variable name="Para" select="concat($NL, $NL)" />
<xsl:template match="/">
   <xsl:value-of select="//Date" />
   <xsl:value-of select="$Para" />
To,
<xsl:value-of select="concat(//To/FirstName, &#39; &#39;, //To/LastName)" />
<xsl:value-of select="$NL" />
<xsl:value-of select="//Address/Line1" />
<xsl:value-of select="$NL" />
<xsl:value-of select="//Address/Line2" />
<xsl:value-of select="$NL" />
<xsl:value-of select="concat(//Address/City, &#39; &#39;, //Address/State, &#39; &#39;, //Address/Zip)" />
<xsl:value-of select="$NL" />
<xsl:value-of select="//Address/Country" />
<xsl:value-of select="$Para" />
Regarding: <xsl:value-of select="//Subject" />
<xsl:value-of select="$NL" />
Dear <xsl:if test="starts-with(//Sex, &#39;M&#39;)">Mr. </xsl:if><xsl:if test="starts-with(//Sex, &#39;F&#39;)">Miss </xsl:if>
<xsl:value-of select="concat(//To/FirstName, &#39; &#39;, //To/LastName)" />,
<xsl:value-of select="$Para" />
<xsl:value-of select="//Text" />
<xsl:value-of select="$Para" />
Sincerely,
<xsl:value-of select="$Para" />
<xsl:value-of select="concat(//Sender/FirstName, &#39; &#39;, //Sender/LastName)" />
<xsl:value-of select="$NL" />
<xsl:value-of select="//Sender/Title" />
</xsl:template>
</xsl:stylesheet>
Salin selepas log masuk

上面的样式表举例说明了concat和starts-with XPath串函数和怎样在输出文本中增加新行,还有定义和使用变量。
下面是程序的执行结果。

1.VC6建立Win32控制台应用程序。
2.在stdafx.h中添加下面的代码:

#include <TCHAR.H>
#include <stdio.h>
#include <time.h>
#import "msxml4.dll"
// If this import statement fails, you need to install MSXML 4.0 SP1 from:
//http://msdn.microsoft.com/downloads/sample.asp?url=/MSDN-FILES/027/001/766/msdncompositedoc.xml
#include <msxml2.h>
// If this include statement fails, you need to install MSXML 4.0 SP1 SDK from:
//http://msdn.microsoft.com/downloads/sample.asp?url=/MSDN-FILES/027/001/766/msdncompositedoc.xml
// You also need to add the include file and library search path
// to Visual C++&#39;s list of directories (Tools > Options... > Directories).
using namespace MSXML2;
inline void EVAL_HR( HRESULT _hr ) 
   { if FAILED(_hr) throw(_hr); }
#define TEMP_SIZE  _MAX_PATH               // size of short buffer
static _TCHAR   szTemp[TEMP_SIZE];         // multipurpose buffer on stack
static DWord    dwLen;
Salin selepas log masuk

3.上面的代码引入MSXML4类型库,包含MSXML头文件,检查HRESULT值并声明了一些全局变量。
4.main函数:

  int main(int argc, char* argv[])
{
 try
 {
  EVAL_HR(CoInitialize(NULL));
  // Make sure that MSXML 4.0 is installed
  if (!isMSXMLInstalled())
   return -1;
  // Make sure that XML and XSL file names are passed
  // as command line parameters
  if (argc < 3)
   // Show proper message here
   return -1;
  
  IXMLDOMDocument2Ptr pXMLDoc = NULL;
  IXMLDOMDocument2Ptr pXSLDoc = NULL;
  
  // Load the XML document
  if (loadDocument(pXMLDoc, argv[1], true))
  {
   // Load the stylesheet
   if (loadDocument(pXSLDoc, argv[2], false))
   {
    _ftprintf(stdout, pXMLDoc->transformNode(pXSLDoc));
   }
   else
   {
    printMSXMLError(pXSLDoc);
   }
  }
  else
  {
   printMSXMLError(pXMLDoc);
  }
 }
 catch(...)
 {//exception handling
 }
 
 _ftprintf(stdout, "\n\nPress Enter to continue...");
 getchar();
 CoUninitialize();
 return 0;
}
Salin selepas log masuk

5.XML文件和XSLT样式表文件名作为命令行参数传递给应用程序。主函数通过调用isMSXMLInstalled验证    MSXML4.0是否安装。接下来两次调用loadDocument;先是加载XML文档,然后是加载XSLT样式表。 最后调用transformNode进行转换。

6.本例代码下载:http://www.perfectxml.com/CPPMSXML/downloads/20020716MailMerge.zip

 以上就是实例简析XPath串函数和XSLT的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dalam tindakan: Mengekstrak data daripada dokumen XML menggunakan XPath PHP dalam tindakan: Mengekstrak data daripada dokumen XML menggunakan XPath Jun 13, 2023 pm 10:03 PM

XPath ialah alat yang sangat berguna apabila bekerja dengan data XML menggunakan PHP. XPath ialah bahasa untuk mencari elemen dalam dokumen XML. Ia membantu pembangun dengan cepat dan mudah mengekstrak data yang diperlukan daripada dokumen XML. Dalam artikel ini, kami akan memperkenalkan konsep asas XPath dan menerangkan secara terperinci cara menggunakan XPath dalam PHP. Kami akan menunjukkan cara menggunakan XPath untuk mengekstrak data daripada dokumen XML dan membina yang mudah

Bagaimana untuk menghuraikan kandungan HTML menggunakan PHP dan XPath Bagaimana untuk menghuraikan kandungan HTML menggunakan PHP dan XPath Jun 17, 2023 am 11:17 AM

Apabila teknologi Web terus berkembang, kandungan halaman Web menjadi semakin kompleks. Kami selalunya perlu mengekstrak maklumat daripada halaman HTML untuk pemprosesan dan analisis lanjut, seperti perangkak, perlombongan data, dsb. Artikel ini akan memperkenalkan cara menggunakan PHP dan XPath untuk menghuraikan kandungan HTML dan mendapatkan maklumat yang kami perlukan dengan cepat dan mudah. PHPSimpleHTMLDOMParserPHPSimpleHTMLDOMParser ialah sumber terbuka

Bagaimana untuk menggunakan sambungan XSLT PHP? Bagaimana untuk menggunakan sambungan XSLT PHP? May 31, 2023 pm 09:51 PM

Sambungan XSLT untuk PHP ialah alat yang berkuasa untuk menukar dokumen XML kepada format HTML, XHTML atau XML. Sambungan ini adalah berdasarkan standard W3CXSLT dan boleh menghuraikan dan mengubah dokumen XML dengan cepat. Dalam artikel ini, kita akan membincangkan cara PHP menggunakan sambungan XSLT. 1. Pasang sambungan XSLT Sebelum mula menggunakan sambungan XSLT, anda perlu mengesahkan sama ada sambungan itu dipasang. Anda boleh menggunakan fungsi phpinfo() untuk melihatnya. Jika sambungan tidak dipasang, anda perlu mengkonfigurasinya dalam PHP

Penjelasan terperinci tentang penggunaan fungsi PHP XPath: XPath menyediakan fungsi carian dan pertanyaan untuk fail XML dan HTML Penjelasan terperinci tentang penggunaan fungsi PHP XPath: XPath menyediakan fungsi carian dan pertanyaan untuk fail XML dan HTML Jun 27, 2023 pm 01:04 PM

XPath ialah bahasa untuk menyoal dan mencari nod tertentu dalam dokumen XML dan HTML. Sebagai bahasa ekspresi laluan, XPath digunakan secara meluas dalam banyak bahasa pengaturcaraan, termasuk PHP. Dalam artikel ini, kami akan melihat secara mendalam tentang penggunaan fungsi PHPXPath supaya anda boleh menggunakan XPath dengan mudah dalam projek anda untuk mencari dan menanyakan fail XML dan HTML. Apa itu XPath? XPath ialah bahasa untuk menyoal dan mencari nod tertentu dalam dokumen XML dan HTML.

Cara menggunakan php extended XSLT untuk penukaran XML dan XHTML Cara menggunakan php extended XSLT untuk penukaran XML dan XHTML Jul 28, 2023 pm 02:28 PM

Gambaran keseluruhan tentang cara menggunakan sambungan PHP XSLT untuk menukar XML dan XHTML: Dalam pembangunan web, selalunya perlu untuk menukar fail XML kepada format XHTML (atau HTML) untuk paparan pada penyemak imbas. PHP menyediakan sambungan XSLT untuk menjadikan proses penukaran ini mudah dan cekap. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melanjutkan XSLT untuk mencapai penukaran XML kepada XHTML dan menyediakan contoh kod. Langkah 1: Pasang dan dayakan sambungan XSLT Sebelum memulakan, pastikan persekitaran PHP anda

Apakah sintaks asas untuk suntikan xPath? Apakah sintaks asas untuk suntikan xPath? May 26, 2023 pm 12:01 PM

Pertama, apakah itu xPath: xPath ialah bahasa untuk mencari maklumat dalam xml Dalam xPath, terdapat tujuh elemen nod: elemen, atribut, teks, ruang nama, arahan pemprosesan, ulasan dan dokumen (nod akar). Dokumen XML dihuraikan sebagai pepohon dokumen, dan akar pokok itu dipanggil nod dokumen atau nod akar. Ini ialah kod sumber dokumen xml asas Dari kod sumber xml ini, kita dapat melihat bahawa kedai buku ialah nod dokumen (nod akar), dan buku, tajuk, pengarang, tahun dan harga ialah nod elemen. Nod buku mempunyai empat nod elemen anak: tajuk, pengarang, tahun, harga dan nod tajuk mempunyai tiga adik beradik: au

Teknologi DOM dan XPath dalam PHP Teknologi DOM dan XPath dalam PHP May 11, 2023 pm 04:04 PM

Dalam tahun-tahun kebelakangan ini, dengan pembangunan berterusan Internet, teknologi pembangunan web juga sentiasa dikemas kini dan diulang. Antaranya, bahasa PHP digunakan secara meluas dalam bidang pembangunan Web kerana mudah dipelajari dan digunakan, kelajuan berjalan pantas, dan ciri merentas platform. Dalam PHP, teknologi DOM dan XPath adalah teknologi yang biasa digunakan semasa membangunkan aplikasi Web Artikel ini akan memperkenalkan pengetahuan asas dan senario aplikasi kedua-dua teknologi ini secara terperinci. 1. DOM teknologi DOM (Document Object Model, DocumentObjectModel) ialah cara untuk memproses XML atau HTM

Bagaimana untuk menggunakan Python untuk xpath, JsonPath, dan bs4? Bagaimana untuk menggunakan Python untuk xpath, JsonPath, dan bs4? May 09, 2023 pm 09:04 PM

1.xpath1.1xpath Gunakan Google untuk memasang pemalam xpath terlebih dahulu Tekan ctrl+shift+x dan kotak hitam kecil akan muncul untuk memasang perpustakaan lxml pipinstalllxml-ihttps://pypi.douban.com/simple lxml.etreefromlxmlimportetreeetree.parse() untuk menghuraikan fail setempat html_tree =etree.parse('XX.html')etree.HTML() fail respons pelayan html_tree=etree.HTML(respon

See all articles