XDOC

c#中使用XSLT将xml文档转换为html文档方法

懵懂的女人 提交于 2021-01-11 08:20:50
c#使用XSLT将xml文档转换为html文档 使用xslt可以将xml文档转成html,如下c#函数: 需要引用下面的命名空间: using System.Xml; using System.Xml.Xsl; 方法实现: public static string ConvertXML(XmlDocument InputXMLDocument, string XSLTFilePath , XsltArgumentList XSLTArgs) { System.IO.StringWriter sw = new System.IO.StringWriter(); XslCompiledTransform xslTrans = new XslCompiledTransform(); xslTrans.Load(XSLTFilePath); xslTrans.Transform(InputXMLDocument.CreateNavigator(), XSLTArgs, sw); return sw.ToString(); } 示例xml文件如下: <?xml version="1.0" encoding="utf-8" ?> <sexystars> <category name="Bollywood"> <sexystar name="Antra mali" /> <sexystar

.Net 配置的简陋解决方案

佐手、 提交于 2020-10-29 05:11:49
公司是做CS产品的, 最近分配给我一个活, 要求: 1. 公司程序启动时, 检测是否有配置文件, 没有的话则按默认值创建一个 2. 配置文件要加密, 不能让客户随便看到里面的参数 3. 配置文件要有配套的GUI配置工具, 因为现场实施人员嫌XML配置麻烦 如果只有一个产品需要这个功能, 把每个配置项的读写功能硬编码写到工具里就完事了, 但公司有好几个产品都需要这个, 不得不写一个通用的工具类 这个工作还解决了两个问题: a. 以前设置项都配置在 app.config 里, 每次升级都会覆盖原来的设置, 所以现场人员都必须先将 app.config复制出来. b. app.config 里新增了配置项, 现场实施人员必须仔细对比, 将新增项人工放入原来的app.config 现在的做法是, 配置文件ConfigSetting.xml并不在安装包中, 所以卸载升级都不会影响它; 程序第一次启动时, 会按默认值生成一个ConfigSetting.xml; 以后程序启动的时候, 假如有新增的配置项, 则将其加入ConfigSetting.xml 我把涉及的两个类都放在了一个文件, 这样引入一个文件即可 using System; using System.Collections.Generic; using System.Xml.Linq; using System.Security

【一周水笔榜】—— 工作不饱和呀!

不打扰是莪最后的温柔 提交于 2020-10-25 04:55:53
介绍:通过爬取近一周的动弹数据,分析动弹数、评论数以及点赞数,评定出近一周的水笔榜,最水的那个靓仔将会获得【动弹龙王】称号,为期一周 作者:wjcIvan 脚本:https://gitee.com/wjcIvan/OSCTweetsSpider 备注:机器人及被本人屏蔽的选手不参与水笔榜,水笔榜最终解释权归本人所有 以下所有排名均分先后 水笔榜 发动弹是水笔获取经验的最直接方式,所以该比重为0.5,由于osc的防刷屏机制,所以该统计不完全准确,实际动弹数可能会多于统计数量 动弹水笔 Top 100 水笔 @首席语录搬运工 , 水笔 @巴拉迪维 , 水笔 @RYAN_____ , 水笔 @FalconChen , 水笔 @划水找对象 , 水笔@开源中国首席发型师, 水笔@枯藤老骨, 水笔@Daniel-01, 水笔@金拱门, 水笔@大喝向东游, 水笔@码上行动aa, 水笔@Open不Open, 水笔@米老李, 水笔@Practices, 水笔@罗马的王, 水笔@高总, 水笔@挨踢得要死要死的某瓜, 水笔@fineDD, 水笔@开源中国马桶盖, 水笔@道羽, 水笔@Vendettad, 水笔@开源中国首席颈椎砖家, 水笔@源码分析55, 水笔@O马大帝, 水笔@狄工, 水笔@小电灯, 水笔@碧海潮生曲终人不散, 水笔@开源中国首席罗纳尔多, 水笔@DBKangaroo, 水笔

OSChina 周六乱弹 —— 修空调这个职业可真危险啊

。_饼干妹妹 提交于 2020-08-14 02:20:06
Osc乱弹歌单(2020)请戳( 这里 ) 【今日歌曲】 @ 薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《半月琴(笛子)》- 董真 手机党少年们想听歌,请使劲儿戳( 这里 ) @ 巴拉迪维 :眼睛难受的一天,连话都不想说。 巴蜀(@ 巴拉迪维 )要注意眼睛了, 少做点费眼的事, 没事的时候注意休息休息眼睛, 别一直盯着, 一盯就是一天。 “啊!不不不!不要这样。” 你还要留着力气和孩子斗智斗勇呢, @ 博一夏 :程序员爸爸不容易,儿子疫情期间沉迷游戏,最后写了个进程,看到游戏(窗口)就杀,还扫描在玩那些游戏,不定期加到黑名单里,最后被收拾终于老实了!!! 游戏都不能玩, 你这样做会不讨儿子喜欢啊, “妈妈洗脚,爸爸洗脸。” 孩子天生就会和妈妈亲近啊, 睡觉也要和妈妈一起睡, @ RYAN___ :小孩子学会自己独立睡觉太难了 .... 如何能跟夫人一起生活感情还很好, @ 小刘鸭 :越来越发现跟夫人分开生活两个人感情还会更好点,要是天天在一起反而还会因为各种小事互掐。。。这可如何是好。。。 你这个情况, 大家纷纷提出宝贵的建议, 没准嘛时候回家就遇到修空调的呢, “修空调这个职业可真危险啊。” 哪怕物种不一样, 感情之路也差不多。 @ 开源中国首席屌炸天 :我们学校的猫要成精了...... 失恋了会找最亲近的人沟通一下, @ 牛A和牛C之间的我 :昨天晚上下班回家

C# LINQ学习笔记五:LINQ to XML

[亡魂溺海] 提交于 2020-04-26 13:50:46
本笔记摘抄自: https://www.cnblogs.com/yaozhenfa/p/CSharp_Linq_For_Xml.html ,记录一下学习过程以备后续查用。 一、生成xml 1.1创建简单的xml /// <summary> /// CreateXml类 /// </summary> public class CreateXml { /// <summary> /// 返回xml文件路径 /// </summary> public string Path { get { string path = @" ..\..\LinqToXml.xml " ; return path; } } /// <summary> /// 创建简单的xml并保存 /// </summary> public void CreateElement() { XDocument xdoc = new XDocument ( // 创建一个xml文档 // 设置该xml的版本为1.0,采用utf - 8编码,后面的yes表示该xml是独立的。 new XDeclaration( " 1.0 " , " utf-8 " , " yes " ), // 开始创建每个节点的,首先是Root节点,然后在Root节点中添加两个Item节点。 new XElement ( " Root " , new

C# LINQ学习笔记五:LINQ to XML

别等时光非礼了梦想. 提交于 2020-04-26 11:30:12
本笔记摘抄自: https://www.cnblogs.com/yaozhenfa/p/CSharp_Linq_For_Xml.html ,记录一下学习过程以备后续查用。 一、生成xml 1.1创建简单的xml /// <summary> /// CreateXml类 /// </summary> public class CreateXml { /// <summary> /// 返回xml文件路径 /// </summary> public string Path { get { string path = @" ..\..\LinqToXml.xml " ; return path; } } /// <summary> /// 创建简单的xml并保存 /// </summary> public void CreateElement() { XDocument xdoc = new XDocument ( // 创建一个xml文档 // 设置该xml的版本为1.0,采用utf - 8编码,后面的yes表示该xml是独立的。 new XDeclaration( " 1.0 " , " utf-8 " , " yes " ), // 开始创建每个节点的,首先是Root节点,然后在Root节点中添加两个Item节点。 new XElement ( " Root " , new

玩转控件:对Dev的GridControl控件扩展

馋奶兔 提交于 2020-04-23 21:01:44
缘由   一切实现来源于需求,目的在于不盲目造轮子,有小伙伴儿在看了《 玩转控件:对Dev中GridControl控件的封装和扩展 》文章后,私信作者说,因公司业务逻辑比较复杂,展示字段比较多,尤其网格列表控件展示数据太多时候,很多关键列信息不同用户要求展示效果不同,问我有没有好点的处理方式来满足不同客户的需求。 看到这里作者还是比较暗自窃喜的,毕竟自己造的轮子不止作者一个人在用,而且还能收获客户的实际需求来完善轮子。当然客户需求存在即合理。毕竟There are a thousand Hamlets in a thousand people's eyes. 何以解忧唯有撸码   有了需求,眼球一转,就撸起袖子加油干吧。初步想法直接在《 玩转控件:对Dev中GridControl控件的封装和扩展 》的基础上,右键菜单网格设置状态里面处理吧。把处理后的结果通过配置文件方式(ini,xml...)存储起来,网格加载的时候,通过校验是否存在配置文件来加载不同客户的配置信息即可。 有了想法,就行动起来吧!气运丹田,双手摊开,扎下马步,使出"拖控件大法"一气呵成!   大致需求与实现如上图,本来还有列中文列名的,但是客户说不要~~(如有更多不同需求或更好的想法,请自行添加或者公众号私信作者一起探讨) Talk is Cheap,Show me the Code   跟用户反复沟通

复杂Excel转换与导入

前提是你 提交于 2020-04-19 10:08:23
需求   把不同客户提供Excel 直接导入到系统中生成对应的收货单或是出货单。后端创建收货端和出货单的接口已经有现成的webservice或是标准的xml;这类需要做的就是把客户提供不同种类的Excel mapping成标准格式。 要重点解决问题   不同格式的excel如何找到对应的数据项,比如一个Excel中需要字段分别在不同的sheet或是不同的位置上。 解决方案   第一个定位配置信息,sheet-name:数据从哪个sheet中读取,默认sheet1,start-tag:固定标识,查找Excel中一些特殊文本信息来定位具体的celladdress(行,列),data-offset:设置一个偏移量,在找到具体内容的地址后可能真正需要数据在后面,那就需要设置一个偏移量待读取信息, end-tag:结束位置,用于循环读取的范围。 第二个映射字段明,XmlNode Name:就是目标字段明,data-field:Excel中对应的字段名称(含有表头的行),data-type:目标字段的类型,data-formatter:格式化截取excel Cell中的内容 比如:需要通过substring,或splitl来取其中的内容。   第三个表示单个表头,还是循环的表体 replicate="true" 表示需要循环读取。 大致的处理过程

玩转控件:对Dev的GridControl控件扩展

谁说我不能喝 提交于 2020-04-11 17:05:45
缘由   一切实现来源于需求,目的在于不盲目造轮子,有小伙伴儿在看了《 玩转控件:对Dev中GridControl控件的封装和扩展 》文章后,私信作者说,因公司业务逻辑比较复杂,展示字段比较多,尤其网格列表控件展示数据太多时候,很多关键列信息不同用户要求展示效果不同,问我有没有好点的处理方式来满足不同客户的需求。 看到这里作者还是比较暗自窃喜的,毕竟自己造的轮子不止作者一个人在用,而且还能收获客户的实际需求来完善轮子。当然客户需求存在即合理。毕竟There are a thousand Hamlets in a thousand people's eyes. 何以解忧唯有撸码   有了需求,眼球一转,就撸起袖子加油干吧。初步想法直接在《 玩转控件:对Dev中GridControl控件的封装和扩展 》的基础上,右键菜单网格设置状态里面处理吧。把处理后的结果通过配置文件方式(ini,xml...)存储起来,网格加载的时候,通过校验是否存在配置文件来加载不同客户的配置信息即可。 有了想法,就行动起来吧!气运丹田,双手摊开,扎下马步,使出"拖控件大法"一气呵成!   大致需求与实现如上图,本来还有列中文列名的,但是客户说不要~~(如有更多不同需求或更好的想法,请自行添加或者公众号私信作者一起探讨) Talk is Cheap,Show me the Code   跟用户反复沟通

玩转控件:对Dev的GridControl控件扩展

亡梦爱人 提交于 2020-04-11 17:04:50
缘由   一切实现来源于需求,目的在于不盲目造轮子,有小伙伴儿在看了《 玩转控件:对Dev中GridControl控件的封装和扩展 》文章后,私信作者说,因公司业务逻辑比较复杂,展示字段比较多,尤其网格列表控件展示数据太多时候,很多关键列信息不同用户要求展示效果不同,问我有没有好点的处理方式来满足不同客户的需求。 看到这里作者还是比较暗自窃喜的,毕竟自己造的轮子不止作者一个人在用,而且还能收获客户的实际需求来完善轮子。当然客户需求存在即合理。毕竟There are a thousand Hamlets in a thousand people's eyes. 何以解忧唯有撸码   有了需求,眼球一转,就撸起袖子加油干吧。初步想法直接在《 玩转控件:对Dev中GridControl控件的封装和扩展 》的基础上,右键菜单网格设置状态里面处理吧。把处理后的结果通过配置文件方式(ini,xml...)存储起来,网格加载的时候,通过校验是否存在配置文件来加载不同客户的配置信息即可。 有了想法,就行动起来吧!气运丹田,双手摊开,扎下马步,使出"拖控件大法"一气呵成!   大致需求与实现如上图,本来还有列中文列名的,但是客户说不要~~(如有更多不同需求或更好的想法,请自行添加或者公众号私信作者一起探讨) Talk is Cheap,Show me the Code   跟用户反复沟通