根据xslt定义xml文件生成html文件

根据xslt定义xml文件生成html文件

有xls文件如下:
<!--
    - XSLT is a template based language to transform Xml documents
    It uses XPath to select specific nodes 
    for processing.
    
    - A XSLT file is a well formed Xml document
-->

<!--  every StyleSheet starts with this tag  -->
< xsl:stylesheet 
      
xmlns:xsl ="http://www.w3.org/1999/XSL/Transform"
      version
="1.0" >
<!--  indicates what our output type is going to be  -->
< xsl:output  method ="html"   />
    
<!--  
        Main template to kick off processing our Sample.xml
        From here on we use a simple XPath selection query to 
        get to our data.
    
-->
    
< xsl:template  match ="/" >     
        
< html >     
            
< head >                 
                
< title > Welcome to  < xsl:value-of  select ="/company/name" /></ title >                 
                
< style >
                    body,td {font-family:Tahoma,Arial; font-size:9pt;}
                
</ style >                 
            
</ head >             
            
< body >
                
< h2 > Welcome to  < xsl:value-of  select ="/company/name" /></ h2 >
                
< p />
                
< b > Our contact details: </ b >
                
< br />
                
< br />         
                
< xsl:value-of  select ="/company/name" />
                
< br />
                
< xsl:value-of  select ="/company/address1" />
                
< br />
                
< xsl:value-of  select ="/company/address2" />
                
< br />
                
< xsl:value-of  select ="/company/city" />
                
< br />
                
< xsl:value-of  select ="/company/country" />
            
</ body >     
        
</ html >     
    
</ xsl:template >
</ xsl:stylesheet >

xml文件如下:
< company >
    
< name > XYZ Inc. </ name >
    
< address1 > One Abc Way </ address1 >
    
< address2 > Some avenue </ address2 >
    
< city > Tech city </ city >
    
< country > Neverland </ country >
</ company >

2个文件命名分别为: sample.xslsample.xml
C#代码如下:
    public   static   void  Transform( string  sXmlPath,  string  sXslPath)
        
{

            
try
            
{

                
//load the Xml doc
                XPathDocument myXPathDoc = new XPathDocument(sXmlPath);

                XslTransform myXslTrans 
= new XslTransform();

                
//load the Xsl 
                myXslTrans.Load(sXslPath);

                
//create the output stream
                XmlTextWriter myWriter = new XmlTextWriter
                    (
"result.html"null);

                
//do the actual transform of Xml
                myXslTrans.Transform(myXPathDoc, null, myWriter);

                myWriter.Close();


            }

            
catch (Exception e)
            
{

                Console.WriteLine(
"Exception: {0}", e.ToString());
            }


        }

生成result.html如下:
< html >
< head >
< title > Welcome to XYZ Inc. </ title >
< style >
body,td 
{font-family:Tahoma,Arial; font-size:9pt;}
</ style >
</ head >
< body >
< h2 > Welcome to XYZ Inc. </ h2 >
< p />
< b > Our contact details: </ b >
< br  />
< br  />
XYZ Inc.
< br  />
One Abc Way
< br  />
Some avenue
< br  />
Tech city
< br  />
Neverland
</ body >
</ html >

这样可以生成页面
主要是xls 需要好好学习

转载于:https://www.cnblogs.com/zqmingok/archive/2009/04/20/1439541.html

[实验目的] 1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的有效性验证。 3、掌握如何准确定义数据之间的参照完整性约束,如何在模式中使用多态性支持,如何在文档中定义空值等等。 [实验内容和步骤] 1、使用XMLSPY集成开发环境,新建XML Schema文档,在各种不同的编辑视图中尝试采用不同的方式完成XML Schema文档的编辑和查看;并使用XMLSPY提供的便利,建立XML、Schema两者之间的关联,进行XML文档的良构以及有效性验证。 2、严格按照下图给出的文档模型,在XML Schema编辑环境的Schema视图中完成book.xsd的编写(不要使用Text视图进行编写): 在上图中,没有指定简单类型元素和属性的数据类型,请根据合理的情况,完成数据类型的创建(至少使用到限制方式中的三种以上的限制方面),请在IDE的Details视图->type和Facets中完成上述任务。 在上图中,有三个title元素分别表示book、section和figure的标题,请定义下述类型: titleType:1-100个字符的文本; bookTitleType:titleType类型限制派生的子类型,要求取枚举值“Data On the Web”、“TCP/IP Illustrated”等; sectionTitleType:titleType类型限制派生的子类型,要求必须形如“1.xxxx”、“1-1.xxxx”等等(表示第一节、第一节下面的第一节等等,注意section是递归的形式); figureTitleType:titleType类型限制派生的子类型,要求必须形如“1-1.xxxx” 、“1-1-1.xxxx”(表示第一节中的第一个图、第一节下面的第一节的第一个图等等); 然后编写book.xml,并使用多态性(即所有title的类型均为titleType,而数据实例中指明具体类型),请确保通过文档有效性验证。 3、在上次的DTD实验中,我们编写了SpyBase1.xml、SpyBase2.xml、以及SpyBase1.dtd和SpyBase2.dtd,这次需要完成SpyBase1.xsd和SpyBase2.xsd,建立模式与数据之间的关联,并进行文档有效性验证。在编写的XSD文档SpyBase1.xsd中,要求使用key/keyref描述数据的实体完整性以及数据之间的参照完整性(SpyBase2.xml不需要,因为已经使用嵌套消除了参照关系)。 [实验思考] 与ID/IDREF相比,key/keyref有哪些优点,在使用上有何不同? 假设SpyBase1.xml中的alias、mission、spy来自不同的命名空间中,如何在Schema中对其进行限定,请在XMLSPY中完成相应的xsd文档?修改SpyBase1.xml,并验证新的SpyBase1_2.xsd是否正确? [提交时间及内容] 最后提交时间 2013年?月?日 提交内容 提交book.xsd、book.xml(使用多态)。 提交SpyBase1. xsd、SpyBase2. xsd。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值