Heim Backend-Entwicklung XML/RSS-Tutorial Eine ausführliche Einführung in die Zusammenfassung der Verwendung von XML

Eine ausführliche Einführung in die Zusammenfassung der Verwendung von XML

Mar 20, 2017 pm 04:47 PM
xml

1. XML verstehen

Extensible Markup Language, eine Auszeichnungssprache, die zum Markieren elektronischer Dokumente verwendet werden kann, um sie ergebnisorientiert zu gestalten ermöglicht Benutzern die Verwendung einer Quellsprache, die ihre eigene Auszeichnungssprache definiert.

2. Unterschiede zur Hypertext-Auszeichnungssprache

2.1 HTML muss nicht unbedingt paarweise erscheinen, während XML paarweise erscheinen muss.

2.2 HTML unterscheidet nicht zwischen Groß- und Kleinschreibung, XML jedoch schon.

3. Auf Hinzufügungen, Löschungen und Änderungen von XML-Dokumenten prüfen

//声明一个XmlDocument空对象
       protected XmlDocument XmlDoc = new XmlDocument();
       /// <summary>
       /// 构造函数,导入xml文件
       /// </summary>
       /// <param name="path"></param>
       public XmlHelper(string path)
       {
           try
           {
               XmlDoc.Load(path);
           }
           catch (Exception ex)
           {
               throw ex;
           }
       }
       /// <summary>
       /// 保存文件
       /// </summary>
       /// <param name="path"></param>
       public void SaveXml(string path)
       {
           try
           {
               XmlDoc.Save(path);
           }
           catch (System.Exception ex)
           {
               throw ex;
           }
       }
Nach dem Login kopieren
/// <summary>
       /// 获取节点的子节点的内容
       /// </summary>
       /// <param name="path"></param>
       /// <param name="rootNode"></param>
       /// <param name="attributeName"></param>
       /// <returns></returns>
       public string GetNodeChildAttribute(string path, string rootNode, string attributeName)
       {
           XmlNode xn = XmlDoc.SelectSingleNode(rootNode);
           StringBuilder sb = new StringBuilder();
           XmlNodeList xnl = xn.ChildNodes;
 
           foreach (XmlNode xnf in xnl)
           {
               XmlElement xe = (XmlElement)xnf;
               XmlNodeList xnf1 = xe.ChildNodes;
               foreach (XmlNode xn2 in xnf1)
               {
                   if (xn2.Name == attributeName)
                   {
                       sb.Append(xn2.InnerText);//显示子节点点文本
                   }
               }
           }
           return sb.ToString();
       }
Nach dem Login kopieren
/// <summary>
        /// 获取节点的属性值
        /// </summary>
        /// <param name="path">xml路径</param>
        /// <param name="rootNode">根节点名称</param>
        /// <param name="attributeName">属性名称</param>
        /// <returns></returns>
        public string GetNodeAttribute(string path, string rootNode, string attributeName)
        {
            try
            {
                XmlNode xn = XmlDoc.SelectSingleNode(rootNode);
                XmlNodeList xnl = xn.ChildNodes;
                StringBuilder sb = new StringBuilder();
                foreach (XmlNode xnf in xnl)
                {
                    XmlElement xe = (XmlElement)xnf;
                    sb.Append(xe.GetAttribute(attributeName));
                }
                return sb.ToString();
            }
            catch (Exception)
            {
 
                throw;
            }
        }
Nach dem Login kopieren
/// <summary>
       /// 删除节点/节点属性
       /// </summary>
       /// <param name="path">xml文件地址</param>
       /// <param name="rootNode">根节点名称</param>
       /// <param name="delNode">要删除的节点</param>
       /// <param name="attributeName">节点属性</param>
       /// <param name="attributeValue">属性值</param>
       public void DeleteNode(string path, string rootNode, string attributeName, string attributeValue)
       {
           try
           {
               XmlNodeList xnl = XmlDoc.SelectSingleNode(rootNode).ChildNodes;
               foreach (XmlNode xn in xnl)
               {
                   XmlElement xe = (XmlElement)xn;
                   if (xe.GetAttribute(attributeName) == attributeValue)
                   {
                       //xe.RemoveAttribute(attributeName);//删除属性
                       xe.RemoveAll();//删除该节点的全部内容
                   }
               }
               SaveXml(path);
           }
           catch (Exception)
           {
 
               throw;
           }
       }
Nach dem Login kopieren
/// <summary>
       /// 修改节点的子节点内容
       /// </summary>
       /// <param name="path">xml文件路径</param>
       /// <param name="rootNode">根节点名称</param>
       /// <param name="attributeName">节点的子节点名称</param>
       /// <param name="attributeOldValue">节点的子节点原始内容</param>
       /// <param name="attributeNewValue">节点的子节点新内容</param>
       public void UpdateChildNodeAttribute(string path, string rootNode, string attributeName,string attributeOldValue, string attributeNewValue)
       {
           try
           {
               XmlNodeList nodeList = XmlDoc.SelectSingleNode(rootNode).ChildNodes;//获取根节点的所有子节点
               foreach (XmlNode xn in nodeList)//遍历所有子节点
               {
                   XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型
                   if (string.IsNullOrEmpty(attributeName) || string.IsNullOrEmpty(attributeOldValue))
                   {
                       return;
                   }
                   else
                   {
                       XmlNodeList nls = xe.ChildNodes;
                       if (nls != null && nls.Count > 0)
                       {
                           foreach (XmlNode xn1 in nls)//遍历
                           {
                               XmlElement xe2 = (XmlElement)xn1;//转换类型
                               if (xe2.InnerText == attributeOldValue)//如果找到
                               {
                                   xe2.InnerText = attributeNewValue;//则修改
                                   break;//找到退出来就可以了
                               }
                           }
                       }
                   }
               }
               SaveXml(path);
           }
           catch (Exception)
           {
 
               throw;
           }
       }
Nach dem Login kopieren
/// <summary>
        /// 修改节点属性值操作
        /// </summary>
        /// <param name="path">xml文件路径</param>
        /// <param name="rootNode">根节点名称,如:bookstore</param>
        /// <param name="attributeName">节点属性名</param>
        /// <param name="attributeOldValue">节点属性原来值</param>
        /// <param name="attributeNewValue">节点属性修改后的值</param>
        public void UpdateNodeAttribute(string path, string rootNode, string attributeName, string attributeOldValue, string attributeNewValue)
        {
            try
            {
                XmlNodeList nodeList = XmlDoc.SelectSingleNode(rootNode).ChildNodes;//获取根节点的所有子节点
                foreach (XmlNode xn in nodeList)//遍历所有子节点
                {
                    XmlElement xe = (XmlElement)xn;//将子节点类型专程xmlelement类型
                    if (string.IsNullOrEmpty(attributeName) || string.IsNullOrEmpty(attributeOldValue))
                    {
                        return;
                    }
                    else
                    {
                        if (xe.GetAttribute(attributeName) == attributeOldValue)
                        {
                            xe.SetAttribute(attributeName, attributeNewValue);
                        }
                    }
                }
                SaveXml(path);
            }
            catch (Exception)
            {
 
                throw;
            }
        }
Nach dem Login kopieren
/// <summary>
        /// 插入节点操作
        /// </summary>
        /// <param name="path">xml文件路径</param>
        /// <param name="rootNode">根节点名称,如:bookstore</param>
        /// <param name="node">节点名称,如:book</param>
        /// <param name="nodeAttributes">节点的属性-属性值集合</param>
        /// <param name="childAttributes">节点子节点名称-内容</param>
        public void InsertNode(string path, string rootNode, string node, Dictionary
        <string, string> nodeAttributes, Dictionary<string, string> childAttributes)
        {
            try
            {
                XmlNode root = XmlDoc.SelectSingleNode(rootNode);//找到根节点bookstore
                XmlElement xe1 = XmlDoc.CreateElement(node);//创建子节点book
                if (nodeAttributes != null && nodeAttributes.Count > 0)
                {
                    foreach (var n in nodeAttributes)
                    {
                        xe1.SetAttribute(n.Key, n.Value);
                    }
                }
                if (childAttributes != null && childAttributes.Count > 0)
                {
                    XmlElement xesub1;
                    foreach (var n in childAttributes)
                    {
                        xesub1 = XmlDoc.CreateElement(n.Key);
                        xesub1.InnerText = n.Value;
                        xe1.AppendChild(xesub1);//添加到<book>节点中
                    }
                }
                root.AppendChild(xe1);
                SaveXml(path);
            }
            catch (Exception)
            {
 
                throw;
            }
        }
Nach dem Login kopieren

Anruf:

string path = Server.MapPath("Books.xml");
           XmlHelper xHelper = new XmlHelper(path);
           /*插入*/
           //Dictionary<string, string> dc1 = new Dictionary<string, string>();
           //dc1.Add("genre", "李赞红");
           //dc1.Add("ISBN", "2-3631-4");
           //Dictionary<strin插入g, string> dc2 = new Dictionary<string, string>();
           //dc2.Add("title", "CS从入门到精通");
           //dc2.Add("author", "候捷");
           //dc2.Add("price", "58.3");
           //xHelper.InsertNode(path, "bookstore", "book", dc1, dc2);
 
           /*修改*/
           //xHelper.UpdateNodeAttribute(path, "bookstore", "genre", "李赞红", "李");
           //xHelper.UpdateChildNodeAttribute(path, "bookstore", "title", "CS从入门到精通", "cs");
 
           /*删除节点*/
           //xHelper.DeleteNode(path, "bookstore", "genre", "李");
 
           //Response.Write(xHelper.GetNodeAttribute(path, "bookstore", "genre"));
           //Response.Write(xHelper.GetNodeChildAttribute(path, "bookstore", "price"));
Nach dem Login kopieren

4. Durch XML-Datenbindung

xml an DataTable

public DataTable XmlToData(string path, string rootNode, params string[] columns)
       {
           DataTable dt = new DataTable();
           XmlNodeList xn = XmlDoc.SelectSingleNode(rootNode).ChildNodes;
           try
           {
               if (columns.Length > 0)
               {
                   DataColumn dc;
                   for (int i = 0; i < columns.Length; i++)
                   {
                       dc = new DataColumn(columns[i]);
                       dt.Columns.Add(dc);
                   }
                   foreach (XmlNode xnf in xn)
                   {
                       XmlElement xe = (XmlElement)xnf;
                       XmlNodeList xnf1 = xe.ChildNodes;
                       int i = 0;
                       DataRow dr = dt.NewRow();
                       foreach (XmlNode xn2 in xnf1)
                       {
                           dr[i] = xn2.InnerText;
                           i++;
                       }
                       dt.Rows.Add(dr);
                   }
               }
           }
           catch (Exception)
           {
 
               throw;
           }
           return dt;
 
       }
Nach dem Login kopieren

Aufruf:

//string[] arr = { "title", "author", "price" };
           //GridView1.DataSource = xHelper.XmlToData(path, "bookstore", arr);
           //GridView1.DataBind();
Nach dem Login kopieren

DataTable an xml

/*datatable转xml*/
       public  string DataTableToXml(DataTable dt)
       {
           if (dt != null)
           {
               MemoryStream ms = null;
               XmlTextWriter XmlWt = null;
               try
               {
                   ms = new MemoryStream();
                   //根据ms实例化XmlWt
                   XmlWt = new XmlTextWriter(ms, Encoding.Unicode);
                   //获取ds中的数据
                   dt.WriteXml(XmlWt);
                   int count = (int)ms.Length;
                   byte[] temp = new byte[count];
                   ms.Seek(0, SeekOrigin.Begin);
                   ms.Read(temp, 0, count);
                   //返回Unicode编码的文本
                   UnicodeEncoding ucode = new UnicodeEncoding();
                   string returnValue = ucode.GetString(temp).Trim();
                   return returnValue;
               }
               catch (System.Exception ex)
               {
                   throw ex;
               }
               finally
               {
                   //释放资源
                   if (XmlWt != null)
                   {
                       XmlWt.Close();
                       ms.Close();
                       ms.Dispose();
                   }
               }
           }
           else
           {
               return "";
           }
       }
Nach dem Login kopieren

Aufruf:

//bool s = xHelper.CDataToXmlFile(xHelper.XmlToData(path, "bookstore", arr), "Bookss.xml","book");
Nach dem Login kopieren

5. XML-Serialisierung und -Deserialisierung

[Serializable]
   public class Person
   {
       public string Name { get; set; }
       public int Age { get; set; }
   }
Nach dem Login kopieren
public class CXmlSerializer<T> where T : new()
    {
        private static XmlSerializer _Serializer = new XmlSerializer(typeof(T));
 
        public static string Serialize(T t)
        {
            string s = "";
            using (MemoryStream ms = new MemoryStream())
            {
                _Serializer.Serialize(ms, t);
                s = System.Text.UTF8Encoding.UTF8.GetString(ms.ToArray());
            }
            return s;
        }
 
        public static T Deserialize(string s)
        {
            T t;
            using (MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(s)))
            {
                t = (T)_Serializer.Deserialize(ms);
            }
            return t;
        }
    }
Nach dem Login kopieren

Aufruf:

List<Person> list = new List<Person> { new Person { Name = "Xuj", Age = 20 }, new Person { Name = "duj", Age = 20 }, new Person { Name = "fuj", Age = 20 } };
            string s = CXmlSerializer<List<Person>>.Serialize(list);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEine ausführliche Einführung in die Zusammenfassung der Verwendung von XML. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kann ich eine XML-Datei mit PowerPoint öffnen? Kann ich eine XML-Datei mit PowerPoint öffnen? Feb 19, 2024 pm 09:06 PM

Können XML-Dateien mit PPT geöffnet werden? XML, Extensible Markup Language (Extensible Markup Language), ist eine universelle Auszeichnungssprache, die häufig im Datenaustausch und in der Datenspeicherung verwendet wird. Im Vergleich zu HTML ist XML flexibler und kann eigene Tags und Datenstrukturen definieren, wodurch die Speicherung und der Austausch von Daten komfortabler und einheitlicher werden. PPT oder PowerPoint ist eine von Microsoft entwickelte Software zum Erstellen von Präsentationen. Es bietet eine umfassende Möglichkeit

Verwendung von Python zum Zusammenführen und Deduplizieren von XML-Daten Verwendung von Python zum Zusammenführen und Deduplizieren von XML-Daten Aug 07, 2023 am 11:33 AM

Verwenden von Python zum Zusammenführen und Deduplizieren von XML-Daten XML (eXtensibleMarkupLanguage) ist eine Auszeichnungssprache, die zum Speichern und Übertragen von Daten verwendet wird. Bei der Verarbeitung von XML-Daten müssen wir manchmal mehrere XML-Dateien zu einer zusammenführen oder doppelte Daten entfernen. In diesem Artikel wird erläutert, wie Sie mit Python die Zusammenführung und Deduplizierung von XML-Daten implementieren und entsprechende Codebeispiele angeben. 1. XML-Daten zusammenführen Wenn wir mehrere XML-Dateien haben, müssen wir sie zusammenführen

XML-Daten mit Python filtern und sortieren XML-Daten mit Python filtern und sortieren Aug 07, 2023 pm 04:17 PM

Implementieren des Filterns und Sortierens von XML-Daten mit Python Einführung: XML ist ein häufig verwendetes Datenaustauschformat, das Daten in Form von Tags und Attributen speichert. Bei der Verarbeitung von XML-Daten müssen wir die Daten häufig filtern und sortieren. Python bietet viele nützliche Tools und Bibliotheken zum Verarbeiten von XML-Daten. In diesem Artikel wird erläutert, wie Sie mit Python XML-Daten filtern und sortieren. Lesen der XML-Datei Bevor wir beginnen, müssen wir die XML-Datei lesen. Python verfügt über viele XML-Verarbeitungsbibliotheken.

Konvertieren Sie XML-Daten in Python in das CSV-Format Konvertieren Sie XML-Daten in Python in das CSV-Format Aug 11, 2023 pm 07:41 PM

Konvertieren Sie XML-Daten in Python in das CSV-Format. XML (ExtensibleMarkupLanguage) ist eine erweiterbare Auszeichnungssprache, die häufig zur Datenspeicherung und -übertragung verwendet wird. CSV (CommaSeparatedValues) ist ein durch Kommas getrenntes Textdateiformat, das häufig für den Datenimport und -export verwendet wird. Bei der Datenverarbeitung ist es manchmal erforderlich, XML-Daten zur einfachen Analyse und Verarbeitung in das CSV-Format zu konvertieren. Python ist mächtig

Importieren Sie XML-Daten mit PHP in die Datenbank Importieren Sie XML-Daten mit PHP in die Datenbank Aug 07, 2023 am 09:58 AM

Importieren von XML-Daten in die Datenbank mit PHP Einführung: Während der Entwicklung müssen wir häufig externe Daten zur weiteren Verarbeitung und Analyse in die Datenbank importieren. Als häufig verwendetes Datenaustauschformat wird XML häufig zum Speichern und Übertragen strukturierter Daten verwendet. In diesem Artikel wird erläutert, wie Sie mit PHP XML-Daten in eine Datenbank importieren. Schritt 1: XML-Datei analysieren Zuerst müssen wir die XML-Datei analysieren und die erforderlichen Daten extrahieren. PHP bietet mehrere Möglichkeiten zum Parsen von XML. Die am häufigsten verwendete davon ist die Verwendung von Simple

Python implementiert die Konvertierung zwischen XML und JSON Python implementiert die Konvertierung zwischen XML und JSON Aug 07, 2023 pm 07:10 PM

Python implementiert die Konvertierung zwischen XML und JSON. Einführung: Im täglichen Entwicklungsprozess müssen wir häufig Daten zwischen verschiedenen Formaten konvertieren. XML und JSON sind gängige Datenaustauschformate. In Python können wir verschiedene Bibliotheken zum Konvertieren zwischen XML und JSON verwenden. In diesem Artikel werden mehrere häufig verwendete Methoden mit Codebeispielen vorgestellt. 1. Um XML in Python in JSON zu konvertieren, können wir das Modul xml.etree.ElementTree verwenden

Behandeln von Fehlern und Ausnahmen in XML mit Python Behandeln von Fehlern und Ausnahmen in XML mit Python Aug 08, 2023 pm 12:25 PM

Behandeln von Fehlern und Ausnahmen in XML mit Python XML ist ein häufig verwendetes Datenformat zum Speichern und Darstellen strukturierter Daten. Wenn wir Python zum Verarbeiten von XML verwenden, können manchmal Fehler und Ausnahmen auftreten. In diesem Artikel werde ich die Verwendung von Python zur Behandlung von Fehlern und Ausnahmen in XML vorstellen und einige Beispielcodes als Referenz bereitstellen. Verwenden Sie Try-Exception-Anweisungen, um XML-Parsing-Fehler abzufangen. Wenn wir Python zum Parsen von XML verwenden, können manchmal Fehler auftreten

Python analysiert Sonderzeichen und Escape-Sequenzen in XML Python analysiert Sonderzeichen und Escape-Sequenzen in XML Aug 08, 2023 pm 12:46 PM

Python analysiert Sonderzeichen und Escape-Sequenzen in XML. XML (eXtensibleMarkupLanguage) ist ein häufig verwendetes Datenaustauschformat, das zum Übertragen und Speichern von Daten zwischen verschiedenen Systemen verwendet wird. Bei der Verarbeitung von XML-Dateien kommt es häufig vor, dass Sonderzeichen und Escape-Sequenzen enthalten sind, die zu Analysefehlern oder einer Fehlinterpretation der Daten führen können. Daher müssen wir beim Parsen von XML-Dateien mit Python verstehen, wie mit diesen Sonderzeichen und Escape-Sequenzen umgegangen wird. 1. Sonderzeichen und

See all articles