如何将XML数据转换成HTML

  介绍

这篇文章主要介绍如何将XML数据转换成HTML,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

使用一个简单的XSL样式表就可以将XML数据转换成HTML。随着XML规范的不断演进,在新的版本中满足每个人的需要似乎已经成为必要;假设有一个表示一个页面内容的XML数据,现在想将其内容转换成布局。下面是想要转换的XML:

& lt; ? xmlversion=& # 39; 1.0 & # 39; ?祝辞,   & lt; ? xml-stylesheettype=拔谋?xsl" href=https://www.yisu.com/zixun/癮rticle.xsl”?>      <文件夹>   <文件夹>   <文本> Folder1   <文件>   <文件>   <文本> File1   <字段>   <字段>   <数据>   <类型>字符串   长度50 <长度>   <价值> somedata      

这个内容表示一组文件夹,文件和域。每个文件夹包含文件,每个文件包含用于输入数据的域。文件夹组中的每个文件夹都将表现为一个表的第一行的一个TR元素和一个TD元素。文件组中的每个文件都将表示为嵌套在文件夹TR元素中的一个表元素的第一行的一个TR元素和一个TD元素。域组中的每个域都将在相关的文件中表现为一个输入。
下面是用于这个转换的XSL:

& lt; xmlversion=?.0“?祝辞,   & lt; xsl: stylesheet    xmlns: xsl=癶ttp://www.w3.org/1999/XSL/Transform" version=?.0“,   xmlns: msxsl=皍rn: schemas-microsoft-com: xslt",   xmlns: fn=http://www.aaa.com/aaa>,,   & lt; xsl: outputmethod=癶tml"/祝辞,   & lt; msxsl: scriptlanguage=癑Script" implements-prefix=癴n"祝辞,   functiongetElementCount{(节点列表,),   varrtrn=0,,   rtrn=节点列表[0].parentNode.selectNodes(什么). length;,   返回(rtrn  1);//1 isaddedforfillertd    },   时间/msxsl: script> & lt;   & lt; xsl: templatematch=?白4?   & lt; TABLECELLSPACING=?”单元格边距=?”,   宽度=?00%“边境=?”;ID=皌blRoot" NAME=皌blRoot",   风格=氨聿季?固定;“祝辞,   & lt; TR>,   & lt; xsl: for-eachselect=皒ml/文件夹/folder"祝辞,   & lt; xsl: elementname=癟D"祝辞,   & lt; xsl: attributename=皊tyle"祝辞宽度:55 px,   & lt; xsl: value-ofselect=皌ext"/祝辞,   时间/xsl: element> & lt;   时间/xsl: for-each> & lt;   & lt; TD> & lt;/TD>,   时间/TR> & lt;   & lt; xsl: for-eachselect=皒ml/文件夹/folder"祝辞,   & lt; TR>,   & lt; xsl: elementname=癟D"祝辞,   & lt; xsl: attributename=癱olspan"祝辞,   & lt; xsl: value-ofselect=癴n: getElementCount(。& # 39;文件夹# 39;)“/祝辞,   时间/xsl: attribute> & lt;      & lt; TABLECELLSPACING=?”单元格边距=?”,   宽度=?00%“边境=?“风格=氨聿季?固定;“祝辞,   & lt; TR>,   & lt; xsl: for-eachselect=拔募?file"祝辞,   & lt; xsl: elementname=癟D"祝辞,   & lt; xsl: attributename=皊tyle"祝辞宽度:55 px; & lt;/xsl: attribute>,   & lt; xsl: value-ofselect=皌ext"/祝辞,   时间/xsl: element> & lt;   时间/xsl: for-each> & lt;   & lt; TD> & lt;/TD>,   时间/TR> & lt;   & lt; xsl: for-eachselect=拔募?file"祝辞,   & lt; TR>,   & lt; xsl: elementname=癟D"祝辞,   & lt; xsl: attributename=癱olspan"祝辞,   & lt; xsl: value-ofselect=癴n: getElementCount(。& # 39;文件# 39;)“/祝辞,   时间/xsl: attribute> & lt;   & lt; xsl: for-eachselect=白侄?field"祝辞,   & lt; xsl: elementname=癐NPUT"祝辞,   & lt; xsl: attributename=皌ype"祝辞text,   & lt; xsl: attributename=癿axlength"祝辞,   & lt; xsl: value-ofselect=笆?length"/祝辞,   时间/xsl: attribute> & lt;   & lt; xsl: attributename=皏alue"祝辞,   & lt; xsl: value-ofselect=笆?value"/祝辞,   时间/xsl: attribute> & lt;   & lt;/xsl: element> & lt; BR/祝辞,   时间/xsl: for-each> & lt;   时间/xsl: element> & lt;   时间/TR> & lt;   时间/xsl: for-each> & lt;   时间/TABLE> & lt;   时间/xsl: element> & lt;   时间/TR> & lt;   时间/xsl: for-each> & lt;   时间/TABLE> & lt;   时间/xsl: template> & lt;   & lt;/xsl: stylesheet>

在样式表标记中,设置了几个命名空间,包括定义所有xsl转换标记的xsl命名空间,能够让我们创建可以在样式表中使用的用户函数的msxml命名空间。使用它得到所有的子元素,以便得到一个TD标记的一个COLSPAN属性集。用于加入一组用户定义的函数的fn命名空间,该命名空间由msxml:脚本元素创建。

如何将XML数据转换成HTML