xml(带有命名空间的)读写操作
xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- This file contains job definitions in schema version 2.0 format -->
<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">
<processing-directives>
<overwrite-existing-data>true</overwrite-existing-data>
</processing-directives>
<schedule>
<trigger>
<cron>
<name>EmailBDOTrigger_2</name>
<group>EmailBDOTrigger_2</group>
<job-name>EmailBDOTriggerGroup_2</job-name>
<job-group>EmailBDOJob_2</job-group>
<cron-expression>1-2 1-3 1-3 * * ? </cron-expression>
</cron>
</trigger>
</schedule>
</job-scheduling-data>
后台:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Web;
namespace CronMaker
{
class XMLHandler
{
string xmlPath = @"..\..\quartz_jobs.xml";
//string xmlPath = HttpContext.Current.Server.MapPath("~/quartz_jobs.xml");
private String txtcorn;
public XMLHandler(String txtcorn)
{
this.txtcorn = txtcorn;
}
public void changNode()
{
//XmlTextReader tReader = new XmlTextReader("\\quartz_jobs.xml");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Normalize();
xmlDoc.Load(xmlPath);
//xml中有命名空间
XmlNamespaceManager xnm = new XmlNamespaceManager(xmlDoc.NameTable);
xnm.AddNamespace("mxh", "http://quartznet.sourceforge.net/JobSchedulingData");
string XPath = @"/mxh:job-scheduling-data/mxh:schedule/mxh:trigger/mxh:cron";
XmlNodeList nodes = xmlDoc.SelectSingleNode(XPath, xnm).ChildNodes;
foreach (XmlNode item in nodes)
{
// XmlElement element = item as XmlElement;
// Console.WriteLine(element.InnerText);
//if (element.Name == "cron-expression")
// element.InnerText = txtcorn;
if (item.Name == "cron-expression")
item.InnerText = txtcorn;
}
xmlDoc.Save(xmlPath);
}
public void addNode()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Normalize();
xmlDoc.Load(xmlPath);
XmlNamespaceManager xnm = new XmlNamespaceManager(xmlDoc.NameTable);
xnm.AddNamespace("mxh", "http://quartznet.sourceforge.net/JobSchedulingData");
string XPath = @"/mxh:job-scheduling-data/mxh:schedule";
XmlNode root = xmlDoc.SelectSingleNode(XPath, xnm);
// XmlNode root = xmlDoc.SelectSingleNode("job-scheduling-data/schedule");
XmlElement trigger = xmlDoc.CreateElement("trigger",xmlDoc.DocumentElement.NamespaceURI);
XmlElement corn = xmlDoc.CreateElement("cron", xmlDoc.DocumentElement.NamespaceURI);
//加入name节点
XmlElement sub1 = xmlDoc.CreateElement("name", xmlDoc.DocumentElement.NamespaceURI);
sub1.InnerText = "EmailBDOTrigger_2";
corn.AppendChild(sub1);
//group节点
XmlElement sub2 = xmlDoc.CreateElement("group", xmlDoc.DocumentElement.NamespaceURI);
sub2.InnerText = "EmailBDOTrigger_2";
corn.AppendChild(sub2);
//job-name节点
XmlElement sub3 = xmlDoc.CreateElement("job-name", xmlDoc.DocumentElement.NamespaceURI);
sub3.InnerText = "EmailBDOTriggerGroup_2";
corn.AppendChild(sub3);
//job-group节点
XmlElement sub4 = xmlDoc.CreateElement("job-group", xmlDoc.DocumentElement.NamespaceURI);
sub4.InnerText = "EmailBDOJob_2";
corn.AppendChild(sub4);
//cron-expression节点
XmlElement sub5 = xmlDoc.CreateElement("cron-expression", xmlDoc.DocumentElement.NamespaceURI);
sub5.InnerText = txtcorn;
corn.AppendChild(sub5);
trigger.AppendChild(corn);
//问题所在:在AppendChildren,如果ParentNode是带有xmlns属性的,在新加节点时如果不指定xmlns或指定为空时,子节点将出现xmlns=""属性
//解决:不是没有为子节点指定命名空间,而是应该为其指定与父节点相同的命名空间
root.AppendChild(trigger);
xmlDoc.Save(xmlPath);
}
}
}
xml(带有命名空间的)读写操作的更多相关文章
- net9:磁盘目录文件保存到XML文档及其XML文档的读写操作,以及绑定XML到treeview
原文发布时间为:2008-08-10 -- 来源于本人的百度文章 [由搬家工具导入] directorytoxml类: using System;using System.Data;using Sys ...
- 使用XPath查询带有命名空间(有xmlns)的XML(转)
使用XPath查询带有命名空间(有xmlns)的XML 标签: xmlsilverlightwebserviceencodingwpfinclude 2012-06-19 10:26 3235人阅读 ...
- 实现动态的XML文件读写操作
实现动态的XML文件读写操作(依然带干货) 前言 最近由于项目需求,需要读写操作XML文件,并且存储的XML文件格式会随着导入的数据不同而随时改变(当然导入的数据还是有一定约束的),这样我们要预先定义 ...
- 实现动态的XML文件读写操作(依然带干货)
前言 最近由于项目需求,需要读写操作XML文件,并且存储的XML文件格式会随着导入的数据不同而随时改变(当然导入的数据还是有一定约束的),这样我们要预先定义好XML文件的格式就不太现实了,如何实现不管 ...
- php解析带有命名空间的xml
xml如果带有命名空间我们将如何解析,例如: <ns1:CreateBillResponse xmlns:ns1="http://neusoft.com" xmlns:xsd ...
- 带有命名空间的xml解析,C#
前一段时间做花旗的接口,返回的xml格式是带有命名空间的,可是难倒了我,找了好久才找到解决办法,给大家分享下,少走弯路. 1,直接进入正题,先看一段带有命名空间的xml,这段xml大概的意思是,前面是 ...
- Java 对不同类型的数据文件的读写操作整合器[JSON,XML,CSV]-[经过设计模式改造](2020年寒假小目标03)
日期:2020.01.16 博客期:125 星期四 我想说想要构造这样一个通用文件读写器确实不容易,嗯~以后会添加更多的文件类型,先来熟悉一下文件内容样式: <?xml version=&quo ...
- C#操作Xml:通过XmlDocument读写Xml文档
什么是Xml? Xml是扩展标记语言的简写,是一种开发的文本格式.关于它的更多情况可以通过w3组织了解http://www.w3.org/TR/1998/REC-xml-19980210.如果你不知道 ...
- Linq to Xml读取复杂xml(带命名空间)
前言:xml的操作方式有多种,但要论使用频繁程度,博主用得最多的还是Linq to xml的方式,觉得它使用起来很方便,就用那么几个方法就能完成简单xml的读写.之前做的一个项目有一个很变态的需求:C ...
随机推荐
- launch 文件解析
roslaunch工具是ros中python实现的程序启动工具,通过读取launch文件中的参数配置.属性配置等来启动一系列节点: 很多ROS包或源码包中都有launch文件,一般为该程序包能够运行起 ...
- Android Camera 通过V4L2与kernel driver的完整交互过程
http://blog.chinaunix.net/uid-26215986-id-3552456.html 原文地址:Android Camera 通过V4L2与kernel driver的完整交互 ...
- 【Java】仿真qq尝试:用户注册(一)
需求: 1.流程分析:客户端程序拿到用户名和密码,将用户名和密码发送到服务端(在客户端验证合法性),服务端接收并存储用户名和密码,返回给客户端一个信息(可能是成功也可能是失败.) 2.数据怎么存?服务 ...
- const,var,let笔记
js中定义变量的方式有三种const.var.let const 作用域:全局作用域或函数作用域 定义的变量不可修改,且必须初始化 eg: const a= 1; a= 2; console.log( ...
- 20145201 《Java程序设计》第五周学习总结
20145201 <Java程序设计>第五周学习总结 教材学习内容总结 本周学习了课本第八.九章内容,即异常处理.Collection与Map. 第八章 异常处理 8.1 语法与集成架构 ...
- J2EE--Hibernate基础笔记
因为写的是基础内容,所以在这里,(映射集合.映射组件.复合主键和联合主键,jpa annotation,关联映射,hql等等实用内容)都不会提到- 这里写的就是试用李刚<J2EE实战>那本 ...
- Tomcat:解决Tomcat可以在eclipse启动,却无法显示默认页面的操作
解决Tomcat可以在eclipse启动,却无法显示默认页面的操作 今天在eclipse中配置好tomcat后访问不到它的主页,但是能运行自己的项目,一直找不到原因,百度之后最后解决了这个问题,总结如 ...
- Execute Disable Bit
“Execute Disable Bit”是Intel在新一代处理器中引入的一项功能,开启该功能后,可以防止病毒.蠕虫.木马等程序利用溢出.无限扩大等手法去破坏系统内存并取得系统的控制权.其工作原理是 ...
- LeetCode——Word Break
Question Given a string s and a dictionary of words dict, determine if s can be segmented into a spa ...
- Java对象初始化
自动初始化(默认值) 一个类的所有基本数据成员都会得到初始化,运行下面的例子可以查看这些默认值: class Default{ boolean t; char c; byte b; short s; ...