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 ...
随机推荐
- 【转】Python爬虫(7)_scrapy-redis
scrapy-redis使用以及剖析 scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单分布式爬虫程序,该组件本质上提供了三大功能: scheduler - 调 ...
- shiro的Realm
public class UserRealm extends AuthorizingRealm { private UserService userService = new UserServiceI ...
- 双camera景深计算 (1)
http://www.52rd.com/S_TXT/2016_6/TXT85047.HTM?WebShieldDRSessionVerify=Wz3h6srvu76qRI4MFxK8 前面介绍了双ca ...
- Openstack之Nova创建虚机流程分析
前言 Openstack作为一个虚拟机管理平台,核心功能自然是虚拟机的生命周期的管理,而负责虚机管理的模块就是Nova. 本文就是openstack中Nova模块的分析,所以本文重点是以 ...
- 20145120黄玄曦《网络对抗》Web基础
20145120黄玄曦<网络对抗>Web基础 回答问题 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的 ...
- React Native混合开发中必须要学会点FlexBox布局
在前面的案例中,界面的搭建都是采用CSS的布局,基于盒子模型,依赖 display属性 , position属性, float属性.但对于那些特殊布局非常不方便,比如,垂直居中. 一种全新的针对web ...
- Jave基础之选择排序
选择排序(Selection sort) 基本介绍 选择排序: 每一次从未排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余未排序的元素中选出最小(或最大的)放在已排序序 ...
- Spring中Bean管理的常用注解
在Spring中,主要用于管理bean的注解分为四大类:1.用于创建对象.2.用于给对象的属性注入值.3.用于改变作用的范围.4.用于定义生命周期.这几个在开发中经常接触到,也可以说每天都会遇见.其中 ...
- AtCoder Regular Contest 098
AtCoder Regular Contest 098 C - Attention 题意 给定一个只包含"E","W"字符串,可以花一的花费使他们互相转换.选定 ...
- GridView右键菜单
一.添加右键菜单 1.在VS工具箱中的“菜单和工具栏”找到ContextMenuStrip控件,双击添加. 2.点击ContextMenuStrip右上方的小三角形,打开编辑项,可以添加菜单项.至于菜 ...