C#-操作XML笔记(补充中...)

C# 代码 XML 注释规范及其 .chm 帮助文档生成 一.摘要 当我们进行程序开发时,面对一个大型项目,需要多人分工合作,每人实现一个模块。当我们需要调用他人编写的模块时,首先参考的不是源码部分,而是要去通读其代码注释部分。因此,代码注释是否规范标准,很大程度上影响着项目的开发进度。 .Net允许开发人员在源代码中插入XML注释,这在多人协作开发的时候显得特别有用。C#解析器可以把代码文件中的这些XML标记提取出来,并作进一步的处理为外部文档。在... 阅读详情





.NET中使用DOM 1

XML和ADO.NET 3

XPathNavigator 5

XML中串行化对象 6

读写DiffGram 13

 

.NET中使用DOM

XmlDocument doc = new XmlDocument();

doc.Load("books.xml");    

XmlNodeList nodeLst = doc.GetElementsByTagName("title");

foreach (XmlNode node in nodeLst)

       listBox1.Items.Add(node.InnerText); // InnerXml / OuterXml

如何插入节点

XmlDocument doc = new XmlDocument();

doc.Load("books.xml");

XmlElement newBook = doc.CreateElement("book");

newBook.SetAttribute("genre", "Mystery");

newBook.SetAttribute("publicationdate", "2001");

newBook.SetAttribute("ISBN", "123456789");

 

XmlElement newTitle = doc.CreateElement("title");

newTitle.InnerText = "Case of the Missing Cookie";

newBook.AppendChild(newTitle);

 

XmlElement newAuthor = doc.CreateElement("author");

newBook.AppendChild(newAuthor);

 

XmlElement newName = doc.CreateElement("name");

newName.InnerText = "Cookie Monster";

newAuthor.AppendChild(newName);

 

XmlElement newPrice = doc.CreateElement("price");

newPrice.InnerText = "9.95";

newBook.AppendChild(newPrice);

 

doc.DocumentElement.AppendChild(newBook);

 

XmlTextWriter tr = new XmlTextWriter("booksEdit.xml", null);

tr.Formatting = Formatting.Indented;

//保存当前节点和子节点

doc.WriteContentTo(tr);

//只保存当前节点

//_doc.WriteTo(tr);

//_doc.Save(tr);

tr.Close();

XmlNodeList nodeLst = doc.GetElementsByTagName("title");

foreach (XmlNode node in nodeLst)

       listBox1.Items.Add(node.InnerText);

SelectSingleNode() 和SelectNodes() 都是在XmlNode中定义的,而XmlDocument是基于XmlNode的.

SelectSingleNode()返回一个XmlNode; SelectNodes()返回一个XmlNodeList;

XmlNode node = doc.SelectSingleNode("bookstore/book[title='VC深入浅出']");

XmlNodeList nodeLst = doc.SelectNodes("/bookstore/book/title");

如果要写入XML流的数据已经准备好,最好选择XmlTextWriter;如果只是建立XML文档的一小部分或是在不同的地方插入节点,最好用XmlDocument.希望有一个流类型的模型时,可以使用XmlReader;基于XmlDocument的XmlNode也能遍历XML,虽然灵活性高,但要求的内存较多;

 

 

XML和ADO.NET

将ADO.NET数据转换成XML文档

XmlDocument doc = new XmlDocument();

       MemoryStream memStrm = new MemoryStream();

       //将数据表转换成XML,并放入内存流,使用流的好处是不需要将数据写入磁盘,并还能使用基本Stream类的其它对象.

       //WriteXml重载方法中,其中一个方法需要一个XmlWriteMode的枚举参数;

       ds.WriteXml(memStrm, XmlWriteMode.IgnoreSchema);

       memStrm.Seek(0, SeekOrigin.Begin);

       doc.Load(memStrm);

       //936 = GB2312

       XmlTextWriter wrt = new XmlTextWriter("Product.xml", System.Text.Encoding.GetEncoding(936));

       wrt.Formatting = Formatting.Indented;

       doc.WriteContentTo(wrt);

XmlWriteMode枚举

成员名称

说明

DiffGram

作为 DiffGram 写入整个 DataSet,包括原始值和当前值。若要生成只包含已更改的值的 DiffGram,请调用 GetChanges,然后在返回的 DataSet 上作为 DiffGram 调用 WriteXml。 

IgnoreSchema

以 XML 数据形式写入 DataSet 的当前内容,不带 XSD 架构。如果无数据加载到 DataSet 中,则不写入任何内容。 

WriteSchema

以 XML 数据形式写入 DataSet 的当前内容,以关系结构作为内联 XSD 架构。如果 DataSet 只有架构而无数据,那么只写入内联架构。如果 DataSet 没有当前架构,则不写入任何内容。 

       上例中先将XML放入流,然后再调用WriteContentTo()方法写入磁盘,其实你也可以直接调用WriteXml()方法,直接

将XML文件写入磁盘. 如果你只需要将DataSet中的表架构转换成XML,那你可以使用 WriteXmlSchema() 方法.

ds.WriteXml("sample.xml", XmlWriteMode.WriteSchema);

       上例中,使用了XmlDocument的对象doc,不过将被转换后的XML读入doc的过程过于复杂,先要创建一个流,然后再调用WriteXml()方法写入流,最后再调用Load()方法.其实.NET已经提供了XmlDataDocument专门为XML和ADO.NET服务. XmlDocument的参数是一个DataSet的对象,实际上,如果没有参数,它还是会创建一个名为NewDataSet的DataSet,其中Tables中没有任何表,并且你还可以在创建后设置DataSet属性.

XmlDocument doc = new XmlDocument();

doc = new XmlDataDocument(ds);

如果DataSet中有多个表,并且表之间存在着Relations,怎么办?其实,工作方式仍旧是酱紫.

ds.Relations.Add(ds.Tables["Client"].Columns["客户ID"],

                      ds.Tables["Order"].Columns["客户ID"]);   

       //注意,此处生成的Product.xml是带有架构的        

ds.WriteXml("Product.xml", XmlWriteMode.WriteSchema);

将XML文档转换成ADO.NET数据

       ds.ReadXml("Product.xml");

       ReadXml()重载方法中,其中有方法需要用到XmlReadMode枚举(查问MSDN);如果你只需要读取架构,那可以直接调用ReadXmlSchema()方法.

 

 

XPathNavigator

XPathNavigator用于从XML文档中选择、迭代、编辑数据. 使用XPathDocument 创建XPathNavigator 对象,该对象为只读, 使用XmlDocument 创建XPathNavigator 对象,该对象为可编辑. XPathNavigator 对象的只读或可编辑状态是使用XPathNavigator 类的CanEdit 属性决定的。

//使用XPathDocument创建的对象只能处于只读状态

XPathDocument doc = new XPathDocument("books.xml");

// XPathNavigator包含了移动和选择所需元素的所有方法

XPathNavigator nav = ((IXPathNavigable)doc).CreateNavigator();

// XPathNodeIterator迭代器,由Select()方法返回,可以看作 XPath中的NodeList或NodeSet

XPathNodeIterator iter = nav.Select("/bookstore/book[@genre='novel']");

//MoveNext():移动到匹配XPath表达式的下一个节点上.但是,最初调用MoveNext()之后,定位在第一个节点上.

while (iter.MoveNext())

{

    //SelectDescendants : 选择当前节点的子代节点中与选择条件匹配的所有子代节点。

XPathNodeIterator newIter = iter.Current.SelectDescendants(XPathNodeType.Element, false);

// MoveNext() :移动到匹配XPath表达式的下一个节点上,创建XPathNodeIterator

    while (newIter.MoveNext())

        listView1.Items.Add(newIter.Current.Name + ": " + newIter.Current.Value);

}

如何像聚合函数一样,将所有书的价格相加?

listView1.Items.Add("Total Cost = " + nav.Evaluate("sum(/bookstore/book/price)"));

如何插入节点?

       XmlDocument doc = new XmlDocument();

       doc.Load("books.xml");

//XPathNavigator对象由XmlDocument对象创建,故处于可编辑状态

       XPathNavigator nav = doc.CreateNavigator();

if (nav.CanEdit)

{

XPathNodeIterator iter = nav.Select("/bookstore/book/price");

//MoveNext():移动到匹配XPath表达式的下一个节点上.但是,最初调用MoveNext()之后,定位在第一个节点上.

    while (iter.MoveNext())

    {

        //在每一个<price> </price> 后面插入

        iter.Current.InsertAfter("<disc>5</disc>");

    }

}

doc.Save("newbooks.xml");

 

 

 

XML中串行化对象

       System.Xml.Serialization命名空间中最重要的类是XmlSerializer.串行化一个对象,首先需要实例化一个XmlSerializer对象,并指定串行化的对象类型,然后实例化一个流/写入器对象,把文件写入流/文档,最后调用Serializer()方法.

Product pd = new Product();

pd.ProductID = 200;

pd.CategoryID = 100;

pd.Discontinued = false;

pd.ProductName = "Serialize Objects";

……

XmlSerializer sr = new XmlSerializer(typeof(Product));

TextWriter tr = new StreamWriter("Product.xml");

//Serialize()方法有9个重载,但每一个方法都需要一个写入数据的流,可以是Stream,TextWriter或XmlWriter

sr.Serialize(tr, pd);

// XmlRootAttribute、XmlElementAttribute和XmlAttributeAttribute 是C#的属性,仅是一些声明信息,在运行

//期间由CLR获取.

// XmlRootAttribute把这个类,在串行化生成的XML文档中,标识为根元素

[System.Xml.Serialization.XmlRootAttribute()]

public class Product

{

    private int prodId;

    private string prodName;

    private int suppId;

    ……

    // 这里是XmlAttributeAttribute

    [XmlAttributeAttribute(AttributeName = "Discount")]

    public int Discount

    {

        get { return disc; }

        set { disc = value; }

    }

    // XmlElementAttribute把下面的成员看做一个XML元素

    [XmlElementAttribute()]

    public int ProductID

    {

        get { return prodId; }

        set { prodId = value; }

    }

    [XmlElementAttribute()]

    public string ProductName

    {

        get { return prodName; }

        set { prodName = value; }

    }

    [XmlElementAttribute()]

    public int SupplierID

    {

        get { return suppId; }

        set { suppId = value; }

    }

}

 

Product.xml

<?xml version="1.0" encoding="utf-8"?>

<Product xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Discount="0">

  <ProductID>200</ProductID>

  <ProductName>Serialize Objects</ProductName>

  <SupplierID>1</SupplierID>

  <CategoryID>100</CategoryID>

  <QuantityPerUnit>6</QuantityPerUnit>

  <UnitPrice>1000</UnitPrice>

  <UnitsInStock>10</UnitsInStock>

  <UnitsOnOrder>0</UnitsOnOrder>

  <ReorderLevel>1</ReorderLevel>

  <Discontinued>false</Discontinued>

</Product>

反串行化操作

Product newPd;

FileStream f = new FileStream("Product.xml", FileMode.Open);

XmlSerializer newSr = new XmlSerializer(typeof(Product));

//Deserialize()方法必须有一个流/读取器参数

newPd = (Product)newSr.Deserialize(f);

f.Close();

更为复杂的操作

       派生的类+返回一个数据的属性

       可以看出,最后只需要串行化Inventory这个类,串行化它,就需要插入一个属性,该属性为每个要添加到数据中的类型包含一个XmlArrayItem构造函数(XmlArrayItem是由XmlArrayItemAttribute类表示的.NET属性名)

       XmlArrayItem构造函数的第一个参数是串行化过程中,XML中的元素名,如果不写,默认会与对象类型名相同;第二个参数是对象的类型;

public class Inventory

{

    private Product[] stuff;

    public Inventory() { }

    [XmlArrayItem("Prod", typeof(Product)),XmlArrayItem("Book", typeof(BookProduct))]

    public Product[] InventoryItems

    {

        get { return stuff; }

        set { stuff = value; }

    }

}

public class BookProduct : Product

{

    private string isbnNum;

    public BookProduct() { }

    public string ISBN

    {

        get { return isbnNum; }

        set { isbnNum = value; }

    }

}

 

private void button4_Click(object sender, EventArgs e)

{    

// XmlAttributes: 表示一个属性对象的集合

//第一步:创建一个XmlAttributes对象,为每个要重写的数据类型创建一个XmlElementAttribute对象

    XmlAttributes attrs = new XmlAttributes();   

    attrs.XmlElements.Add(new XmlElementAttribute("Book", typeof(BookProduct)));

attrs.XmlElements.Add(new XmlElementAttribute("Prod", typeof(Product)));

//第二步:创建XmlAttributeOverrides对象

XmlAttributeOverrides attrOver = new XmlAttributeOverrides();  

//本例中是要重写Inventory类中的InventoryItems成员

    attrOver.Add(typeof(Inventory), "InventoryItems", attrs);  

    Product newProd = new Product();

    BookProduct newBook = new BookProduct();

    newProd.ProductID = 100;

    newProd.ProductName = "Product Thing";

newProd.SupplierID = 10;

    newBook.ProductID = 101;

    newBook.ProductName = "How to Use Your New Product Thing";

    newBook.SupplierID = 10;

    newBook.ISBN = "123456789";

    Product[] addProd ={ newProd, newBook };

    Inventory inv = new Inventory();

    inv.InventoryItems = addProd;

    TextWriter tr = new StreamWriter("Product.xml");

    XmlSerializer sr = new XmlSerializer(typeof(Inventory), attrOver);

    sr.Serialize(tr, inv);

    tr.Close();

    webBrowser1.Navigate(AppDomain.CurrentDomain.BaseDirectory + "//inventory.xml");

}

 

       Product.xml

<?xml version="1.0" encoding="utf-8"?>

<Inventory xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <Prod Discount="0">

    <ProductID>100</ProductID>

    <ProductName>Product Thing</ProductName>

    <SupplierID>10</SupplierID>

    <CategoryID>0</CategoryID>

    <UnitPrice>0</UnitPrice>

    <UnitsInStock>0</UnitsInStock>

    <UnitsOnOrder>0</UnitsOnOrder>

    <ReorderLevel>0</ReorderLevel>

    <Discontinued>false</Discontinued>

  </Prod>

  <Book Discount="0">

    <ProductID>101</ProductID>

    <ProductName>How to Use Your New Product Thing</ProductName>

    <SupplierID>10</SupplierID>

    <CategoryID>0</CategoryID>

    <UnitPrice>0</UnitPrice>

    <UnitsInStock>0</UnitsInStock>

    <UnitsOnOrder>0</UnitsOnOrder>

    <ReorderLevel>0</ReorderLevel>

    <Discontinued>false</Discontinued>

    <ISBN>123456789</ISBN>

  </Book>

</Inventory>

 

读写DiffGram

DiffGram是包含数据在编辑对话前后的XML文档.大部分的DBMS都提供了跟踪或用于提交/回滚过程的功能,但如果你使用的DBMS没有提供这些功能,就可以使用DiffGram.

保存带有DiffGram模式的XML文档

ds.Tables[0].Rows[0]["产品名称"] = "新改的";

DataRow dr = ds.Tables[0].NewRow();

dr["产品ID"] = "1231234";

dr["产品名称"] = "新加的";

ds.Tables[0].Rows.Add(dr);

//首先需要保存为一个模式(架构)文件,是为读取DiffGram做准备

ds.WriteXmlSchema("author.xdr");

ds.WriteXml("authdiff.xml", XmlWriteMode.DiffGram);

使用DiffGram模式读取XML文档

DataSet ds = new DataSet();

//读取DiffGram的模式(架构)文件

ds.ReadXmlSchema("author.xdr");

ds.ReadXml("authdiff.xml", XmlReadMode.DiffGram);

 

author.xdr

<?xml version="1.0" standalone="yes"?>

<xs:schema id="XMLAuthors" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

  <xs:element name="XMLAuthors" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">

    <xs:complexType>

      <xs:choice minOccurs="0" maxOccurs="unbounded">

        <xs:element name="Authors">

          <xs:complexType>

            <xs:sequence>

              <xs:element name="产品ID" type="xs:int" minOccurs="0" />

              <xs:element name="产品名称" type="xs:string" minOccurs="0" />

              <xs:element name="单位数量" type="xs:string" minOccurs="0" />

              <xs:element name="单价" type="xs:decimal" minOccurs="0" />

              <xs:element name="库存量" type="xs:short" minOccurs="0" />

              <xs:element name="订购量" type="xs:short" minOccurs="0" />

              <xs:element name="再订购量" type="xs:short" minOccurs="0" />

              <xs:element name="中止" type="xs:boolean" minOccurs="0" />

            </xs:sequence>

          </xs:complexType>

        </xs:element>

      </xs:choice>

    </xs:complexType>

  </xs:element>

</xs:schema>

 

authdiff.xml

<?xml version="1.0" standalone="yes"?>

<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">

  <XMLAuthors>

    <Authors diffgr:id="Authors1" msdata:rowOrder="0" diffgr:hasChanges="modified">

      <产品ID>1</产品ID>

      <产品名称>新改的</产品名称>

      <单位数量>每箱24瓶</单位数量>

      <单价>18.0000</单价>

      <库存量>39</库存量>

      <订购量>0</订购量>

      <再订购量>10</再订购量>

      <中止>true</中止>

    </Authors>

    <Authors diffgr:id="Authors2" msdata:rowOrder="1">

      <产品ID>2</产品ID>

      <产品名称>WaterBox</产品名称>

      <单位数量>每箱24瓶</单位数量>

      <单价>19.0000</单价>

      <库存量>17</库存量>

      <订购量>40</订购量>

      <再订购量>25</再订购量>

      <中止>false</中止>

</Authors>

......

    <Authors diffgr:id="Authors70" msdata:rowOrder="69" diffgr:hasChanges="inserted">

      <产品ID>1231234</产品ID>

      <产品名称>新加的</产品名称>

    </Authors>

  </XMLAuthors>

  <diffgr:before>

    <Authors diffgr:id="Authors1" msdata:rowOrder="0">

      <产品ID>1</产品ID>

      <产品名称>苹果汁</产品名称>

      <单位数量>每箱24瓶</单位数量>

      <单价>18.0000</单价>

      <库存量>39</库存量>

      <订购量>0</订购量>

      <再订购量>10</再订购量>

      <中止>true</中止>

    </Authors>

  </diffgr:before>

</diffgr:diffgram>

.NET框架下的XML操作实践指南 本文还有配套的精品资源,点击获取 简介:本文深入探讨了.NET框架中的XML处理技术,通过C#语言展示如何在.NET环境下对XML文档进行增加、删除、修改和查询操作。涉及.NET Framework的XML处理类库使用,并提供"WebApplication2"项目的实际操作示例。 1. .NET XML处理概述 在当今IT领域中,XML(可扩展标记语言)作为... 阅读详情

相关推荐

xml Schema 例子(C#写的验证程序)

xml Schema 例子(C#写的验证程序)QQ:292258449

XmlWriteMode和XmlReadMode的作用是什么?

XmlWriteMode和XmlReadMode的作用是什么? XmlWriteMode枚举通常是作为DataSet.WriteXml()方法的第二个参数使用。它决定使用哪种格式保存XML: IgnoreSchema——默认值。只写数据集的数据,不带有任何架构信息。如果数据集内无数据则不生成文件。WriteSchema——在向.xml文件写入数据集的数据的同时将数据集的架构信息

自由是冠军 3838

在运行opencv时出现的两个问题:AttributeError: module ‘cv2‘ has no attribute ‘gapi_wip_gst_GStreamerPipeline‘

解决了opencv的两个问题:由问题一引出 AttributeError: module 'cv2' has no attribute 'gapi_wip_gst_GStreamerPipeline' cv2.error:OpenCV(4.1.2)C:\projects\opencvpython\opencv\modules\highgui\src\window.cpp:717:error: (-2:Unspecified error) The function is not implemented...

hu_yinghui的博客 3274

SelectNodes 与 XPath

<br />XPath 是 XML 的内容,这里 SelectNodes 是 C# 中 XmlDocument 或 XmlNode 的一个方法。SelectNodes 使用 XPath 来选取节点。<br />重要语法<br />SelectNodes("item")<br />从当前节点的儿子节点中选择名称为 item 的节点。<br />SelectNodes("/item")<br />从根节点的儿子节点中选择名称为 item 的节点。<br />SelectNodes("//item")<br />

leehong的BLOG 1559

RK3588S开发板实战:手把手教你搞定IMX415摄像头驱动配置(附调试日志分析)

本文提供了一份详细的RK3588S开发板配置IMX415摄像头驱动的实战指南。内容涵盖从环境准备、内核驱动编译、设备树节点编写到调试日志分析的完整流程,并重点解析了摄像头调试过程中的常见问题与解决方案,帮助开发者快速完成驱动配置与功能验证。

weixin_28285943的博客 204

别再自己造轮子了!用MONAI Model Zoo里的预训练模型,5分钟搞定医学影像AI项目

本文介绍了如何利用MONAI Model Zoo中的预训练模型快速搭建医学影像AI项目,大幅节省开发时间和计算资源。通过实战案例展示了UNet、DenseNet121等核心模型的应用技巧,帮助临床医生和研究者5分钟内启动高质量医学影像分析,特别适合小样本场景下的病灶分割和分类任务。

weixin_33704234的博客 238

asp.net 4.5 练习~test15-1 xml文件使用xslt转换格式

此示例是使用xslt对xml文件转换格式的。 xmlfile1.xml <?xml version="1.0" encoding="utf-8" ?> <?xml-stylesheet type="text/xsl" href="style.xsl"?> <xinwen> <news> <news_id>1</news_id> <news_title>上海国际艺术节开幕</news_tit

虾米大王的学习历程 259

伪距单点定位算法原理以及利用最小二乘法计算实例

即该公式:建立下列代价函数满足最佳估值的条件为:即:可解得未知参数 X 的最佳估值由于每个可见卫星观测量的精度可能不一样,这时,需要对不同观测量赋予一个权重系数,称为加权。

qq_43381998的博客 1万+

C#实体类与XML相互转换

1、实体类与XML相互转换 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化。 把XML转换成相应的实体类,需要使用到XmlSerializer类的Deserialize方法,将XML进行反序列化。 创建XML序列化公共处理类(XmlSerializeHelper.cs) using System; using System.IO; usi...

pan_junbiao的博客 2万+

【2026-Spark实验一-Windows中安装Spark环境】

本文详细介绍了在Windows系统中配置Spark 3.5.8开发环境的完整流程。主要内容包括:安装JDK 8并配置环境变量,下载并解压Spark 3.5.8预编译版,设置SPARK_HOME系统变量,配置Hadoop的winutils工具解决Windows兼容性问题。通过spark-shell和SparkPi示例程序验证环境配置成功,确保Spark能够正常运行分布式计算任务。文中特别强调了路径命名规范、环境变量设置顺序等关键细节,提供了完整的配置截图和验证方法,帮助开发者快速搭建稳定的Spark学习环境。

pblh123的专栏 1586

PWM调光原理详解:为什么你的LED灯会闪烁?从硬件到软件的避坑指南

本文深入解析PWM调光原理,揭示LED灯闪烁的根本原因,并提供从硬件设计到软件算法的全面解决方案。通过分析人眼视觉暂留机制和PWM参数设置,帮助开发者避免频闪问题,提升照明质量。特别适合电子工程师和智能家居开发者参考。

weixin_29189363的博客 292

C# XML文件的一些操作(XmlDocument、XmlElement、XmlNode)

C#操作xml主要有这么几个对象:XmlDocument、XmlElement、XmlNode 命名空间: using System.Xml; 知识补充: XmlNode和XmlElement的区别: 1、Element是一个小范围的定义,必须含有完整信息的节点才能叫做元素。 2、Node是基本对象,Attribute、Element、Text等都是Node的子对象。 一个元素一定是

白永辉的专栏 4万+

Flotherm XT学习历程

大家好,通过半年的热仿真软件学习使用,最终发现最好用,最好上手的软件就是Flotherm XT,对新手非常友好,但由于软件近几年才发布,网上教程非常少,后面我将在这里持续分析软件使用心得,和大家一起学习。

xiaoredred的博客 6255

C# XML文件的一些操作,增删改查

 C#操作xml主要有这么几个对象:XmlDocument、XmlElement、XmlNode 命名空间: using System.Xml; 知识补充: XmlNode和XmlElement的区别: 1、Element是一个小范围的定义,必须含有完整信息的节点才能叫做元素。 2、Node是基本对象,Attribute、Element、Text等都是Node的子对象。   一个元...

一懒众衫小的博客 3837

【图像超分】论文精读:Interpreting Super-Resolution Networks with Local Attribution Maps(LAM)

论文题目:Interpreting Super-Resolution Networks with Local Attribution Maps —— 用局部归因图解释超分辨率网络CVPR 2021!必读文章!必须会的可视化手段!很多文章中都会对比LAM!图像超分辨率 (SR) 技术发展迅速,受益于深度网络的发明及其连续突破。然而,众所周知,深度学习和深度神经网络很难解释。SR网络继承了这种神秘的性质,很少有作品试图理解它们。在本文中,我们对 SR 网络进行了归因分析。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 546

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C#解析读取XML文件,并且对XML文件进行操作

如果不懂XML文档结构,请点击移步这里 在综合搜索了网上的文章之后发现,有很多文章的讲解博主看的一知半解,并且有些方法已经找不到了,所以就有了自己整理一下学习成果,同时通过博客共享成果 目前还在学习中,先占坑,后续补上 经过昨天的实验和测试,补上C#XML的信息读取操作   嗯,排版什么的,都是浮云,请各位直接忽略(/捂脸) 下面是测试的XML内容 &lt;?xml version ...

为伴-小白-搬运工 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C# winform 使用XML文件

C# Winform 简易XML文件存取 最近开始学C#视窗,记录一下关于最近学习的方法,参考链接如下。 http://www.weisico.com/program/2016/0903/377.html 我用的环境是Visual Studio 2015,最近再练习TCP/IP和COM串口的传输,想要让他们默认读取参数值,界面如下。 在config设置中自动读入XML文件中的设置,也可对XML进...

GTWLin的博客 4103

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C#:xml操作(待补充)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Windows.Forms; namespace MyCommanHelper { public class XMLHelp...

acass424022的博客 84

C# XML中的转义字符操作

C# XML中 <、 > 等转义字符转为 <、>等符号 using System.IO; using System.Xml; public string ToXML(string str) { StringReader Reader = new StringReader(str); XmlDocument xml = new XmlDocument(); xml.Load(Reader); return xml.InnerText.ToString();

chinaherolts2008的博客 1937

C#中的XML注释

<br />C#中的XML注释<br />  如何使用Sandcastle创建C#的帮助文档? 这需要在源文件中插入XML注释,以“///”的形式出现。C#的“///<></>”注释在编译生成xml时候被抽取出来,是用Sandcastle自动生成CHM帮助文档必不可少的来源。<br />===========================================================<br />目录<br />一、常见标记 <br />  <summary> <br />  <remar

xinke453的专栏 2283

C#之XML文件:XML解析

XPath模型的XML文档的节点树。Dom4J(推荐):dom4j是目前在xml解析方面是最优秀的(Hibernate、Sun的JAXM也都使用dom4j来解析XML),它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理。使用DOM4J+XPATH解析XML实践:使用XML实现数据存储,将页面用户提交的数据存储到xml进行持久化,按照分层设计思想,使用Jsp+Servlet实现简单的用户注册系统。

1258

C# XML序列化

XML 序列化中的中心类是 XmlSerializer 类,此类中最重要的方法是 Serialize 和 Deserialize 方法 。 XmlSerializer 创建 C# 文件并将其编译为 .dll 文件,以执行此序列化。 XML 序列化程序生成器工具 (Sgen.exe) 旨在预先生成要与应用程序一起部署的这些序列化程序集,并改进启动性能

XPY567 6106

C#操作XML文档(XmlDocument、XmlNode、XmlAttribute、SelectSingleNode、SelectNodes、XmlNodeList)

XML文档是一种通用的文档,这种文档既可以用.config作为后缀也可以用.xml作为后缀。XML文档主要由元素节点和节点的属性共同构成的。它有且仅有一个根节点,其他的节点全部都是根节点的子节点或者子子节点;每一个节点有开始就一定会有结束,不可能出现有开始无结束的节点,节点主要有两种类型:有InnerText的……和没有InnerText的。在节点中含有属性,一个节点可以含有多个属性,每个属性是由

一只写bug的程序猿的博客 1万+
上一篇: asp.net2.0学习历程 菜鸟到中级程序员的飞跃
下一篇: .NET精辟要点整理(补充中...)
MasterFT
博客等级 码龄20年 48粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值