📜  使用 XSLT 显示 XML

📅  最后修改于: 2022-05-13 01:56:33.461000             🧑  作者: Mango

使用 XSLT 显示 XML

XSLT代表可扩展S样式语言转换

  • XSLT 用于将 XML 文档从一种形式转换为另一种形式。
  • XSLT 使用 Xpath 执行节点匹配以执行这些转换。
  • 将 XSLT 应用于 XML 文档的结果可能是另一个 XML 文档、HTML、文本或从技术角度来看的任何其他文档。
  • XSL 代码写在扩展名为(.xsl)的 XML 文档中。
  • 换句话说,XSLT 文档是一种不同类型的 XML 文档。

XML 命名空间: XML 命名空间是唯一的名称。

  • XML 命名空间是一种将元素或属性分配给组的机制。
  • XML 命名空间用于避免 XML 文档中的名称冲突。
  • W3C 推荐 XML 命名空间。

XML 命名空间声明:
它是使用保留属性声明的,例如属性是xmlns或者它可以以xmlns 开头:

  • 句法:

    在哪里

    • 命名空间以xmlns 开头。
    • 单词名称是命名空间前缀。
    • URL是命名空间标识符。

  • 例子:
    考虑以下名为 Table.xml 的 xml 文档:-
    
    
     
      
       
        
        
       
      
    AppleBanana
          100    150   
     

    在上面的代码中,会出现名称冲突,它们都包含相同的表格元素,但表格元素的内容不同。为了处理这种情况,使用了 XML 命名空间的概念。

  • 例子:
    考虑使用相同的 XML 文档来解决名称冲突:
    
    
     
      
       
        Apple
        Banana
       
      
      
       100
       150
      
     
    

Xpath:

  • Xpath 是 XSLT 标准的重要组成部分。
  • Xpath 用于遍历 XML 文档的元素和属性。
  • Xpath 使用不同类型的表达式从 XML 文档中检索相关信息。
  • Xpath 包含一个标准函数库。
    例子:
    • bookstore/book[1] => 获取 bookstore 元素的第一个子元素的详细信息。
    • bookstore/book[last()] => 获取 bookstore 元素的最后一个子元素的详细信息。

模板:

  • XSL 样式表包含一组或多组称为模板的规则。
  • 模板包含匹配特定元素时应用的规则。
  • XSLT 文档包含以下内容:
    • 样式表的根元素。
    • 扩展名为 .xsl 的文件。
    • XSLT 的语法,即什么是允许的,什么是不允许的。
    • URL 为http://www.w3.org/1999/XSL/Transform的标准命名空间。

例子:
在此示例中,创建包含五个学生信息的 XML 文件并使用 XSLT 显示 XML 文件。

  • XML 文件:
    创建 Students.xml 为:
    
    
     
      
        Divyank Singh Sikarwar 
        CSE
       18
        Agra 
      
      
        Aniket Chauhan 
        CSE
        20
        Shahjahanpur 
      
       
        Simran Agarwal
        CSE
        23
        Buland Shar
      
       
        Abhay Chauhan
        CSE
        17
        Shahjahanpur
      
       
        Himanshu Bhatia
        IT
        25
        Indore
      
     
    

    在上面的示例中,创建了 Students.xml 并将其与包含相应 XSL 样式表规则的 Rule.xsl 链接。

  • XSLT 代码:

    创建 Rule.xsl 为:

    
    
    
     
     
      

    Students' Basic Details

                                                                              
    NameBranchAgeCity
  • 输出 :