asp.net MVC 运用XML集合xsl在网页输出信息

本文介绍了一个使用C#在ASP.NET MVC应用中将XML数据转换为HTML表格的方法。通过XSLT转换实现,展示了如何创建XML文档、添加节点,并将其格式化为带有样式信息的HTML表格以增强可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Controller中记载Xml信息

    public ActionResult Index(string name)
        {
            if (name.Contains("Xml"))
            {
                ViewBag.Xml = ShowChange();
            }
            return View();
        }



  //改变格式内容赋值
        public string ShowChange()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(AddNode());
            XmlDocument xmlResult = new XmlDocument();
            xmlResult.LoadXml(
                                @"<?xml version=""1.0"" encoding=""utf-8""?>
                                <xsl:stylesheet version =""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">    
                                <xsl:template match=""/"">
                                <div style=""padding-right: 0px; padding-left: 0px;
                                        padding-bottom: 6px; padding-top: 6px; text-align: center;"" >
                                            <table  cellspacing=""0"" cellpadding=""0"" rules=""all"" border=""1"" id=""DataGridCoster""
                                            style=""width:90%;border-collapse:collapse;table-layout: fixed;
                                            margin-top: 0px; margin-bottom: 6px; font-size:12px;border: solid 1px #AACCEE;"">
                                <tr style=""background-color:#AACCEE;height:30px; min-height:30px;"" >
                                                    <td align=""center"" style=""width:40px;"">
                                                        序号
                                                    </td>
                                                    <td align=""center"" style=""width:200px;"">变更项名称</td>
                                                    <td align=""center"" style=""width:80px;"">变更项类别</td>
                                                    <td align=""center"" >当前值</td>
                                                    <td align=""center"" >变更为</td>
                                                    <td align=""center"" style=""width:80px;"">是否生效</td>
                                                </tr>
                                <xsl:for-each select=""/ChangeItems/ChangeItem"">
                                <tr>
                                <td align=""center"">
                                <span>
                                <xsl:value-of  select=""position()""    />
                                </span>
                                </td>
                                <td align=""left""><xsl:value-of  select=""@Name""    /></td>
                                <td align=""center"" ><xsl:value-of  select=""@ChangeType""    /></td>
                                <td align=""center"" ><xsl:value-of  select=""@OleValue""   disable-output-escaping=""yes"" /></td>
                                <td align=""center"" ><xsl:value-of  select=""@NewValue""   disable-output-escaping=""yes"" /></td>
                                <td align=""center"" >
                                <xsl:choose>
                                  <xsl:when test=""@SetFlag ='True'"">
                                    <img src='../images/accept.png' alt='已生效' title='已生效'/>
                                  </xsl:when>
                                  <xsl:otherwise>
                                    <img src='../images/que.gif' alt='未生效' title='未生效'/>
                                  </xsl:otherwise>
                                </xsl:choose>
                                </td>
                                </tr>
                                </xsl:for-each>
                                </table>
                                </div>
                                </xsl:template>
                                </xsl:stylesheet>
                             ");
            StringBuilder sb = new StringBuilder();
            StringWriter writer = new StringWriter(sb);
            XslTransform transform = new XslTransform();
            transform.Load(xmlResult);
            transform.Transform(xmlDoc, null, writer, null);
            return sb.ToString();
        }


  //创建xml节点
        public string AddNode()
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlElement xelement = xmlDoc.CreateElement("ChangeItems");
            xmlDoc.AppendChild(xelement);
            for (int i = 0; i < 2; i++)
            {
                XmlNode d = xmlDoc.CreateNode(XmlNodeType.Element, "ChangeItem", "");

                XmlNode attr = xmlDoc.CreateNode(XmlNodeType.Attribute, "Name", "");
                attr.Value = "凤舞九天";
                d.Attributes.SetNamedItem(attr);

                attr = xmlDoc.CreateNode(XmlNodeType.Attribute, "Code", "");
                attr.Value = "xz10086";
                d.Attributes.SetNamedItem(attr);

                attr = xmlDoc.CreateNode(XmlNodeType.Attribute, "ChangeType", "");
                attr.Value = "中文";
                d.Attributes.SetNamedItem(attr);

                attr = xmlDoc.CreateNode(XmlNodeType.Attribute, "SetFlag", "");
                d.Attributes.SetNamedItem(attr);

                attr = xmlDoc.CreateNode(XmlNodeType.Attribute, "OleValue", "");
                attr.Value = "老纸";
                d.Attributes.SetNamedItem(attr);

                attr = xmlDoc.CreateNode(XmlNodeType.Attribute, "NewValue", "");
                attr.Value = "新知";
                d.Attributes.SetNamedItem(attr);

                xelement.AppendChild(d);
            }
            return xmlDoc.InnerXml;
        }

Index.cshtml 页面展示

   @Html.Raw(ViewBag.Xml)

显示结果内容:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

双叶红于二月花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值