C#在xml文件中指定节点插入节点和属性

C#在xml文件中指定节点插入节点和属性,第1张

      private void button1_Click(object sender, EventArgs e)

        {

            string File = @"c:\TableColumns.xml"

            System.Xml.XmlDocument xmlDoc=new System.Xml.XmlDocument()

            xmlDoc.Load(File)

            System.Xml.XmlNode xn = xmlDoc.DocumentElement.SelectSingleNode("TableColumns/TableColumn[@id=\"IndexUnit\"]")//读取id=IndexUnit的TableColumn节点,在xml教材中的xPath章节专门介绍这种查询方法。

            System.Xml.XmlElement vs=xmlDoc.CreateElement("Visibility")//创建新节点

            System.Xml.XmlElement Hd = xmlDoc.CreateElement("Hidden")

            Hd.InnerText = "true"

            vs.AppendChild(Hd)//添加为子节点

            xn.AppendChild(vs)

            xmlDoc.Save(File)

}

根据

你的贴图可以看出你的记录只有一个唯一键值,用户名,那么如果想删除

记录必须找到这个唯一键值的在xml元素中对应的属性,通过这个属性确定这个元素,然后删除这个元素。我们可以通过linq语句来 *** 作。

下面的代码将用来 *** 作xml

string

xmlpath="你xml的地址"

xdocument

xdoc

=

xdocument.load(xmlpath)

xelement

xele

=

xdoc.root.element("元素名")

//如果你要根据属性来查询的话,这么用

ienumerable

xeles=from

xel

in

xdoc.root.descendants()

where

xel.attribute("唯一键值的属性名").value=="唯一键值"

select

xel

xelement

xelee=xeles.firstordefault()

xelee.remove()

那么这样就删除了。

至于你的唯一键值如何获得,我想这个很好办,你用的是listview,通过listview的selected属性就可以得到你所选择行的行索引号,通过索引号就自然可以读取到所在行的第一列的值。

$xml =<<<EOT

<?xml version="1.0"?>

<root>

<section name="Section1">

<category id="Category1" name="google">

</section>

</root>

EOT

$objXML=simplexml_load_string($xml)

$objXML->section->addAttribute('city', 'abc')

echo $objXML->asXML()


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存