C#解析xml文件

1、示例

<?xml version="1.0" encoding="utf-8" standalone="no"?><DATA><ITEMS><ITEM><ID>01<ID/><CODE>0001<CODE><NAME>測試1<NAME/></ITEM><ITEM><ID>02<ID/><CODE>0002<CODE><NAME>測試2<NAME/></ITEM></ITEMS></DATA>

2、用DataTable存儲

private DataTable GetDataTable(string xmlStr, string nodepath)
{
? ? XmlDocument doc = new XmlDocument();
? ? doc.LoadXml(xmlStr);

? ? XmlNodeList xlist = doc.GetElementsByTagName(nodepath);
? ? DataTable Dt = new DataTable();
? ? DataRow Dr;
? ? for (int i = 0; i < xlist.Count; i++)
? ? {
? ? ? ? Dr = Dt.NewRow();
? ? ? ? XmlElement xe = (XmlElement)xlist.Item(i);
? ? ? ? for (int j = 0; j < xe.Attributes.Count; j++)
? ? ? ? {
? ? ? ? ? ? if (!Dt.Columns.Contains(xe.Attributes[j].Name))
? ? ? ? ? ? ? ? Dt.Columns.Add(xe.Attributes[j].Name);
? ? ? ? ? ? Dr[xe.Attributes[j].Name] = xe.Attributes[j].Value;
? ? ? ? }
? ? ? ? for (int j = 0; j < xe.ChildNodes.Count; j++)
? ? ? ? {
? ? ? ? ? ? if (!Dt.Columns.Contains(xe.ChildNodes.Item(j).Name))
? ? ? ? ? ? ? ? Dt.Columns.Add(xe.ChildNodes.Item(j).Name);
? ? ? ? ? ? Dr[xe.ChildNodes.Item(j).Name] = xe.ChildNodes.Item(j).InnerText;
? ? ? ? }
? ? ? ? Dt.Rows.Add(Dr);
? ? }
? ? return Dt;
}

3、解析

string xmlfile="xml路徑";

XmlDocument doc = new XmlDocument();
doc.Load(xmlfile);
string xmlData = doc.InnerXml;
DataTable table = GetDataTable(xmlData, "//ITEM");

if (table != null && table.Rows.Count > 0)

{

for (int i = 0; i < table.Rows.Count; i++)

{

? ?DataRow row = table.Rows[i];
? string id = row["ID"].ToString();
? string code= row["CODE"].ToString();
? string name= row["NAME"].ToString();

? ? //將數據逐條存入數據庫

? ?//具體的存儲方式根據實際情況編寫代碼

}

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16489.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16489.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16489.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

福昕PDF編輯器自定義快捷方式

你是否為用不慣福昕PDF編輯器自帶的快捷鍵而發愁&#xff1f;今天&#xff0c;我和大家分享一下如何設置自己想要的快捷鍵方式&#xff0c;希望能對大家有幫助。 步驟一&#xff1a;打開福昕PDF編輯&#xff0c;并找到更多命令 步驟二&#xff1a;切換到鍵盤一欄&#xff0c;并…

分布式專題

一&#xff1a;分布式事務 1、理論基礎 分布式事務主要區分本地事務 什么是本地事務&#xff08;Local Transaction&#xff09;&#xff1f;本地事務也稱為數據庫事務或傳統事務&#xff08;相對于分布式事務而言&#xff09;。尤其對于數據庫而言&#xff0c;為了數據安全…

Android 多張圖片合成GIF

直接用嗶哩嗶哩弄的一個庫&#xff0c;傳送門&#xff1a;https://github.com/bilibili/BurstLinker 他那個庫的文檔寫的比較簡陋&#xff0c;所以我決定&#xff0c;我也寫得十分簡陋 引用&#xff1a; api com.bilibili:burst-linker:0.0.13 使用&#xff1a; /*** param i…

Docker快速搭建Oracle服務

服務器&#xff1a;CentOS7.9 1.安裝docker yum install -y docker 2. 設置鏡像加速 修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 鍵值 阿里云的docker鏡像需要自己注冊賬號&#xff0c;也可以不注冊賬號&#xff0c;直接使用下面的連接。 也可以寫入多…

【C++ 】學習問題及補充

一.自定義類型不初始化直接就賦值&#xff0c;比如string類會怎么樣 vectr<string>里已經給每個string對象已經分配好空間&#xff0c;為什么不初始化再賦值會報錯 在C中&#xff0c;std::string類是一個動態字符串類&#xff0c;它內部管理著一個字符數組&#xff0c;用…

2024東北四省賽——M House

cf上有題解&#xff0c;我寫這個只想說真服了&#xff0c;卡double了導致一直沒做出來 開long double過的 貼一下我的代碼 #include <bits/stdc.h>using namespace std; typedef long double LD; typedef long long LL; #define int LL #define double LD const int N …

【藍橋杯】國賽普及-

題目列表 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) P9420 [藍橋杯 2023 國 B] 子 2023 / 雙子數 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) #include<bits/stdc.h> using llunsigned long long; #define int ll const int N2e510; int k0; std::string s; int…

【傳知代碼】無監督動畫中關節動畫的運動表示-論文復現

文章目錄 概述動畫技術的演進原理介紹核心邏輯環境配置/部署方式小結 本文涉及的源碼可從無監督動畫中關節動畫的運動表示該文章下方附件獲取 概述 該文探討了動畫在教育和娛樂中的作用&#xff0c;以及通過數據驅動方法簡化動畫制作的嘗試。近期研究通過無監督運動轉移減少對…

Java進階學習筆記30——BigDecimal

BigDecimal&#xff1a; 用于解決浮點型運算的&#xff0c;出現結果失真的問題。 運行結果&#xff1a; package cn.ensource.d4_bigdecimal;import java.math.BigDecimal;public class Test {public static void main(String[] args) {// 目標&#xff1a;了解BigDecimal類do…

RustGUI學習(iced/iced_aw)之擴展小部件(二十七):如何使用number_input部件?

前言 本專欄是學習Rust的GUI庫iced的合集,將介紹iced涉及的各個小部件分別介紹,最后會匯總為一個總的程序。 iced是RustGUI中比較強大的一個,目前處于發展中(即版本可能會改變),本專欄基于版本0.12.1. 概述 這是本專欄的第二十七篇,主要講述number_input部件的使用,會…

8、Qt—Log4Qt使用小記2(每日產生文件)

前言&#xff1a; 開發平臺&#xff1a;Win10 64位 開發環境&#xff1a;Qt Creator 13.0.0 構建環境&#xff1a;Qt 5.15.2 MSVC2019 64位 例如&#xff1a;上一篇文章中筆者記錄了Log4qt的編譯及配置使用&#xff0c;這篇文章重點寫下每天產生文件到指定文件夾中&#xff0c;…

5.1 Go 函數的定義與調用

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…

Spring Boot集成testcontainers快速入門Demo

1.什么是testcontainers&#xff1f; Testcontainers 是一個用于創建臨時 Docker 容器進行單元測試的 Java 庫。當我們想要避免使用實際服務器進行測試時&#xff0c;它非常有用。&#xff0c;官網介紹稱支持50多種組件。? 應用場景 數據訪問層集成測試&#xff1a; 使用My…

ubuntu20安裝Labelme

conda create --namelabelme python3 進入conda環境 source activate labelme 安裝labelme pip install labelme 遇到網絡問題 使用清華源 pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple/ 輸入labelme 打開

Google的MLP-MIXer的復現(pytorch實現)

Google的MLP-MIXer的復現&#xff08;pytorch實現&#xff09; 該模型原論文實現用的jax框架實現&#xff0c;先貼出原論文的代碼實現&#xff1a; # Copyright 2024 Google LLC. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may …

GEC210編譯環境搭建

一、下載編譯工具鏈 下載&#xff1a;點擊跳轉 二、解壓到 /usr/local/arm 目錄 sudo mv gec210.zip /usr/local/arm cd /usr/local/arm sudo unzip gec210.zip 三、添加到環境變量 PATH/usr/local/arm/arm-cortex_a8-linux-gnueabi-4.7.3/bin:$PATH 四、測試驗證 在終端…

python數據分析-基于數據挖掘對APP評分的預測

前言 當我們談論關于APP用戶分析與電子商務之間的聯系時&#xff0c;機器學習在這兩個領域的應用變得至關重要。App用戶分析和電子商務之間存在著密切的關聯&#xff0c;因為用戶行為和偏好的深入理解對于提高用戶體驗、增加銷售以及優化產品功能至關重要。故本文基于K-近鄰模…

OFDM 802.11a的FPGA實現(二十)使用AXI-Stream FIFO進行跨時鐘(含代碼)

目錄 1.前言 2.AXI-Stream FIFO時序 3.AXI-Stream FIFO配置信息 4.時鐘控制模塊MMCM 5.ModelSim仿真 6.總結 1.前言 至此&#xff0c;通過前面的文章講解&#xff0c;對于OFDM 802.11a的發射基帶的一個完整的PPDU幀的所有處理已經全部完成&#xff0c;其結構如下圖所示&…

opencv-C++ VS2019配置安裝

最新opencv-c安裝及配置教程(VS2019 C & opencv4.4.0)_c opencv配置-CSDN博客

夜雨觸花感懷

夜雨觸花感懷 雨落有軌跡&#xff0c;業成無坦途。 ?雞毛飛虛空&#xff0c;尋德問心路。 ?恰如求耕耘&#xff0c;大話量寸土。 ?好吃品五味&#xff0c;難得評真俗。