文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#操作XML处理指令是什么

2023-06-17 21:38

关注

这篇文章主要介绍“C#操作XML处理指令是什么”,在日常操作中,相信很多人在C#操作XML处理指令是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#操作XML处理指令是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

什么是处理指令?

处理指令(Processing Instructions,PI)是用“”包围的一种标签,用以描述特定应用程序信息。XML文档可以包含多个针对不同应用程序的处理指令。处理指令由两部分组成,target和value。target的角色类似于“名称”,紧随target之后的字符串就是value,value可以包含多个标记。
那么Xml声明是不是处理指令呢?答案是肯定的,XML声明是一个特殊的处理指令,它之所以特殊是因为它的value格式是预先定义好的。另外一个常见的处理指令示例是外部样式表。样式表处理指令也拥有预先定义好格式的value值,它由一些伪属性组成。为什么叫做“伪属性”,这是因为它的value值看上去像是几个正常的XML属性,但事实上它们只是一个字符串而已。

然而处理指令value值的格式是开放的。处理指令并不是文档数据的一部分,XML解析器并不会理会它的内容,而是直接将它传递给客户端应用程序。

微软Office套件中的InfoPath就是用了处理指令来指示Xml文件是否可以用InfoPath客户端来查看。

而另一个处理指令,mso-infoPathSolution,则告诉InfoPath解决方案模板的位置。该模板包含了布局Xml文件的布局转换信息、视图的架构信息已经数据源信息。

那么在C#应用程序中该如何操作包含处理指令的Xml文档呢?

我们该如何处理和读取XML文档中已有的处理指令?首先,处理指令可以像文档中的其他节点一样被选出。XPath使用了谓词(predicate )processing-instruction()来测试该节点是不是一个处理指令。

在System.XML命名空间中,有一个XmlProcessingInstruction类。当你从Xml文档中选出了一个节点后,就可以把返回的XMLNode对象转换成这种类型,该类型提供了非常友好的接口来操作处理指令的value。想要读取它的value,只需要访问该对象的Value属性即可。

想要改变处理指令的值,也只需要将新值赋给该对象的Value属性。

想要在XML文档中添加一个新的处理指令,可以使用XMLDocument类的CreateProcessingInstruction方法。然后再使用InsertBefore或InsertAfter方法来将这个XmlProcessingInstruction对象添加到XML文档中。

想要从XML文档中删除已有的处理指令,首先选出该处理指令的XmlNode对象,但不需要将其转换为XMLProcessingInstruction对象。然后使用XMLDocument类的RemoveChild方法就可以将其删除。

下面的代码包含了本文所提及的C#操作全部内容:

// Xml文件路径   string strPath = “path”    // 加载Xml文档内容   XmlDocument doc = new XmlDocument();   doc.XmlResolver = null;   doc.Load(strPath);    // 显示Xml文档内容   Console.WriteLine(doc.InnerXml.ToString().Replace("><", ">\r\n\n<"));   // 读取Xml文档的处理指令   XmlProcessingInstruction pi = (XmlProcessingInstruction)doc.SelectSingleNode("/processing-instruction(\"mso-infoPathSolution\")");   // 显示处理指令的value   Console.WriteLine(pi.Value);    // 更新处理指令的value   pi.Value = "updated value";    // 显示更新后的处理指令value   Console.WriteLine(pi.Value);    // 创建新的处理指令   XmlProcessingInstruction piNew = doc.CreateProcessingInstruction("new-pi", "my new processing instruction");    // 将处理指令添加到文档中   doc.InsertBefore(piNew, doc.ChildNodes[3]);    // 删除处理指令   XmlNode ndDel = doc.SelectSingleNode("/processing-instruction(\"mso-application\")");   doc.RemoveChild(ndDel);    // 显示更改后的Xml文档   Console.WriteLine(doc.InnerXml.ToString().Replace("><", ">\r\n\n<"));

到此,关于“C#操作XML处理指令是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯