System.Xml
using
System.IO
namespace
WriteXml{classProgram{
static
void
Main(string[]
args){
addItem()//追加节点(数据)}privatestatic
void
addItem(){
XmlDocument
xmlDoc
=
new
XmlDocument()
xmlDoc.Load("titles.xml")//加载xml文件,路径未指定时默认在当前项目环境下
XmlNode
root
=
xmlDoc.SelectSingleNode("items")//选择要添加子节点的items节点
XmlElement
xe1
=
xmlDoc.createElement_x("item")//创建一个具有指定名称的子节点
xe1.SetAttribute("类别",
"张三")//设置item的属性
及属性值
xe1.SetAttribute("品质",
"老师")//
XmlElement
xmlsub1
=
xmlDoc.createElement_x("title")//创建一个具有指定名称的元素
xmlsub1.InnerText
=
"wahahha"//设置该元素的值
xe1.AppendChild(xmlsub1)//将该元素添加到item子节点的尾部
XmlElement
xmlsub2
=
xmlDoc.createElement_x("author")//创建一个具有指定名称的元素
xmlsub2.InnerText
=
"三毛"//设置该元素的值
xe1.AppendChild(xmlsub2)//将该元素添加到item子节点的尾部
XmlElement
xmlsub3
=
xmlDoc.createElement_x("Price")//创建一个具有指定名称的元素
xmlsub3.InnerText
=
"15.00"//设置该元素的值
xe1.AppendChild(xmlsub3)//将该元素添加到item子节点的尾部
root.AppendChild(xe1)//将创建的item子节点添加到items节点的尾部
在xml文件有多个命名空间时,你的xml各种类型中的元素在没有确切指明其命名空间的情况下,它的命名空间就是默认命名空间(一般问xml文档根节点中指定命名空间的第一个属性)。当你添加节点时,若没有指明该节点的命名空间时,不会使用默认命名空间的,会添加:xmls=“”,作为默认命名空间。所以,解决的方式当然就是在添加节点时就指明其命名空间就是咯。
命名空间使用方法:
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new XmlDocument().NameTable) //声明一个命名空间管理器
nsmgr.AddNamespace(“ns”, xmlUrl)//向管理器添加一个命名空间连接,其中ns为添加命名空间的名称,xmlUrl为命名空间的链接。两个参数都是string类型。
jobNode.SelectSingleNode("ns:trigger/ns:cron", nsmgr)//使用命名空间查找节点。注意其中的ns和nsmgr
其实对于你的问题只需要在创建要加入的节点时指明一个xmlUrl就可以啦:
XmlElement jobElement = xmlDoc.CreateElement("job", xmlUrl)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)