c#用XmlAttribute如何往xml文档里面节点写入属性?

c#用XmlAttribute如何往xml文档里面节点写入属性?,第1张

以下是我搜集的一些XML常用的 *** 作,一般就这几个。你说的问题,可以用这样的方式someNode.SetAttribute("","")来解决,但首先你需要找到那个需要改动的节点someNode。呵呵,你还是慢慢看吧,不多。

using System.Xml

//初始化一个xml实例

XmlDocument xml=new XmlDocument()

//导入指定xml文件

xml.Load(path)

xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"))

//指定一个节点

XmlNode root=xml.SelectSingleNode("/root")

//获取节点下所有直接子节点

XmlNodeList childlist=root.ChildNodes

//判断该节点下是否有子节点

root.HasChildNodes

//获取同名同级节点集合

XmlNodeList nodelist=xml.SelectNodes("/Root/News")

//生成一个新节点

XmlElement node=xml.CreateElement("News")

//将节点加到指定节点下,作为其子节点

root.AppendChild(node)

//将节点加到指定节点下某个子节点前

root.InsertBefore(node,root.ChildeNodes[i])

//为指定节点的新建属性并赋值

node.SetAttribute("id","11111")

//为指定节点添加子节点

root.AppendChild(node)

//获取指定节点的指定属性值

string id=node.Attributes["id"].Value

//获取指定节点中的文本

string content=node.InnerText

//保存XML文件

string path=Server.MapPath("~/file/bookstore.xml")

xml.Save(path)

//or use :xml.Save(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"))

//遍历结点

private static XmlDocument doc

private static int icount = 1

public static void DisplayTitle(XmlElement xmlnode)

{

XmlNodeList xmlnodelist = xmlnode.ChildNodes

foreach (XmlNode xn in xmlnodelist)

{

if (xn.NodeType != XmlNodeType.Element)

continue

icount++

if (xn.ChildNodes.Count >0)

{

DisplayTitle((XmlElement)xn)

}

}

//Console.WriteLine(icount)

}

按照这个思想把SET @myDoc.modify('insert attribute align {"right"} into (/root/row/item1)[1]')加进里面就可以了吧

property是指类向外提供的数据区域。

而attribute则是描述对象在编译时或运行时属性的,分为固有型和用户自定义型,其中用户自定义型可以利用Reflection在运行期获取。

这两者是有本质区别的。

资料上说二者一个是service的属性,而另一个是interface的。

第一种好象更准确,摘要如下:

在很多人的脑海中,Attribute就是类的属性,Property呢?好像也是类的属性?因此有很多人不加区别的统一称为类的属性,尤其是在写中文文章的时候。这种心理是典型的鸵鸟心态,眼不见为净。其实稍微用脚想一下就知道,事实肯定不是这样的,UML中既然发明了这两个术语,显然不是用来冗余的。它们之间肯定有着千丝万缕的联系与区别。

各种各样的面向对象语言、各种组件技术、模板技术、Web Service技术,其中大部分涉及到了“属性”这个概念,而其英文术语则常常是Attribute、Property或者Field。很多人一概称之为“属性”,有的地方确实可以不加区分,但有的地方却是差之毫厘、谬以千里。我对于这些纷纷扰扰的技术和术语也很苦恼,但是我们至少可以通过UML中的这两个术语的解释找到一个可以参考的标准。无论如何,UML是面向对象技术的集大成者和事实上的标准。

很客观的说,UML1.4中对于这两个术语并没有很清晰的定义,但是其区别还是显而易见的。Attribute应该是UML1.4中的宠儿,而Property连一个单独的术语都没有捞到。谁也没想到在UML2.0中风云突变,Attribute从类图中消失了,而Property堂而皇之入主中原。

1。4中 Attribute是与Classifier相关联的术语,它比Property的影响范围要小。Class是Classifier的子类,因此Attribute也可以表示Class的属性。从上面的定义还可以看出,Attribute可以是Classifier的实例的命名的槽。对于Class来说,其实例就是Object,Object的槽就是对象的属性值槽。因此,Attribute是可以作为对象的属性的。而Property似乎没有这一层的含义。按MOF(元对象设施,OMG的另一个规范,后面会有详细解释)的模型层次划分,Attribute涉及的模型层从M2到M0,而Property似乎只是M2层的概念。

2。0中 Attribute这里仅仅指一个类元的结构特征,可以将类元的实例联系到一个或者一组具体值。而没有提到实例的槽(slot)等等。我猜想,这是因为UML2.0中已经把Attribute作为Property的一个子集了,所以关于实例的槽(slot)等等的具体赋值方法,都归结到Property的定义中解释了。

另外一点值得注意的是,Attribute的定义来自于术语表,而没有在元模型图中出现。而Property出现在元模型图中,并且都做了详细而具体的解释。这一点可以看出,UML强化Property,弱化Attribute的决心。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11486035.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存