XML 增删改

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Xml;
public partial class TestTwo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            LoadXml();
        }
    }

    private void LoadXml()
    {
        XmlDocument xmlDoc = new XmlDocument();
        string strXml =
        @"<?xml version=""1.0"" encoding=""utf-16"" ?>
        <projects>
            <project id=""1"">p1</project>
            <project id=""2"">
                <name>p2</name>
            </project>
        </projects>";
        xmlDoc.LoadXml(strXml);

        Response.Write("<script>alert(' 原始:" + xmlDoc.OuterXml + "');</script>");//OuterXml是该结点包含的全部内容
        //Response.Write(xmlDoc.OuterXml);//直接在浏览器中输出xml文档是空白,因为浏览器无法解析这些标签。

        //根据属性值查询
        XmlElement theProject = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("/projects/project[@id='1']");
        Response.Write(theProject.InnerText+"<br/>");

        //根据子节点值查询
        XmlElement theProject2 = (XmlElement)xmlDoc.DocumentElement.SelectSingleNode("/projects/project[name='p2']");
        Response.Write(theProject2.InnerText + "<br/>");//注意是查询到name那一层了。

        //通过标签名查询,并修改
        xmlDoc.GetElementsByTagName("project").Item(0).InnerText = "abcd";
        Response.Write("<script>alert('修改第1个节点值为abcd:" + xmlDoc.OuterXml + "');</script>");

        //增加属性
        XmlElement theElement = xmlDoc.DocumentElement.FirstChild as XmlElement;
        theElement.SetAttribute("no", "001");
        Response.Write("<script>alert('增加属性no,001:" + xmlDoc.OuterXml + "');</script>");

        //删除结点
        theElement.ParentNode.RemoveChild(theProject);
        Response.Write("<script>alert('删除第1个结点:" + xmlDoc.OuterXml + "');</script>");

        //删除结点集
        XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("/projects/project[@id<3]");
        for (int i = 0; i < nodeList.Count; i++)
        {
            nodeList.Item(i).ParentNode.RemoveChild(nodeList.Item(i));
        }
        Response.Write("<script>alert('删除所有节点:" + xmlDoc.OuterXml + "');</script>");
    }
}

Python 对 XML增删通常可以通过几种不同的库来实现,最常用的库包括 `xml.etree.ElementTree` 和 `lxml`。下面是一个简单的例子,使用 `xml.etree.ElementTree` 来演示如何进行 XML增删操作。 首先,你需要有一个 XML 文件,假设我们有如下 `data.xml` 文件: ```xml <people> <person> <name>张三</name> <age>28</age> </person> <person> <name>李四</name> <age>30</age> </person> </people> ``` **增加元素**: ```python import xml.etree.ElementTree as ET # 解析 XML 文件 tree = ET.parse('data.xml') root = tree.getroot() # 创建新的 person 元素 new_person = ET.Element('person') new_name = ET.SubElement(new_person, 'name') new_name.text = '王五' new_age = ET.SubElement(new_person, 'age') new_age.text = '25' # 增加到根元素下 root.append(new_person) # 保存修后的 XML 文件 tree.write('data_modified.xml') ``` **删除元素**: ```python import xml.etree.ElementTree as ET # 解析 XML 文件 tree = ET.parse('data.xml') root = tree.getroot() # 遍历根元素下的所有 person 元素,并删除特定元素 for person in root.findall('person'): if person.find('name').text == '张三': root.remove(person) # 保存修后的 XML 文件 tree.write('data_modified.xml') ``` **修元素**: ```python import xml.etree.ElementTree as ET # 解析 XML 文件 tree = ET.parse('data.xml') root = tree.getroot() # 查找特定的 person 元素并修其内容 for person in root.findall('person'): if person.find('name').text == '李四': person.find('age').text = '32' # 保存修后的 XML 文件 tree.write('data_modified.xml') ``` 通过上述代码示例,你可以看到如何使用 Python 来增加、删除和修 XML 文件中的元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值