XML文件的生成与读取
从数据库生成:
public static void ToXML(string tablename)
{
//获取数据
string sql = "select * from " + tablename;
DataTable dt = SqlHelper.GetList(sql);
//创建xml对象
XDocument document = new XDocument();
//创建根节点
XElement root = new XElement(tablename + "s");
document.Add(root);
//遍历表格,添加结点
foreach (DataRow item in dt.Rows)
{
//创建元素节点
XElement element = new XElement(tablename);
//设置编号属性(key value,效果:<user c_id="1"> </user>)
element.SetAttributeValue(dt.Columns[].ColumnName, item[].ToString());//假设0列为主键列
//将所有列(除编号列外)分别生成子元素(key value,效果: <c_name>洛杉矶</c_name>)
for (int i = ; i < dt.Columns.Count; i++)
{ element.SetElementValue(dt.Columns[i].ColumnName, item[i].ToString());
}
root.Add(element);
}
//保存生成的xml
document.Save(tablename+".xml");
}
从文件中读取:
public void getXml()
{
XDocument document = new XDocument();
//加载文件
document = XDocument.Load("Test.xml");
//读取根节点
XElement root = document.Root;
// Console.WriteLine("节点名:"+root.Name+"节点值:"+root.FirstAttribute.Value);
//加入节点前使用linq to xml的语法判断id是否存在 int n = root.Elements("student").Where(u => u.Attribute("id").Value == "" || u.Element("name").Value == "王五").Count();
if (n > )
{
Console.WriteLine("id已经存在");
}
else
{
XElement element = new XElement("student");
//设置属性
element.SetAttributeValue("id", "");
//设置节点下的子节点
element.SetElementValue("name", "王五");
element.SetElementValue("age", "");
//加入到根元素下
root.Add(element);
//保存操作
document.Save("Test.xml");
} //循环读取节点内容
foreach (XElement item in root.Elements())
{
Console.WriteLine("节点名:" + item.Name + " 节点属性值:" + item.Attribute("id").Value + " 节点值:" + item.Element("name").Value);
}
}
XElement n = root.Elements("rootFile").Where(u => u.Attribute("name").Value == "rf").ElementAt(0);
MessageBox.Show(n.Attribute("value").Value);
展示一下子节点的属性值
XML文件的生成与读取的更多相关文章
- xml文件的生成
关于android中自定义xml文件的生成,请看示例代码(主要来源于黑马教程): import java.io.File; import java.io.FileNotFoundException; ...
- Matlab中使用脚本和xml文件自动生成bus模块
帮一个老师写的小工具 在一个大工程中需要很多bus来组织信号,而为了规范接口,需要定义很多BusObject,用Matlab语言手写这些BusObject比较费工夫 所以用xml配置文件来写,也便于更 ...
- .net操作xml文件(新增.修改,删除,读取) 转
今天有个需求需要操作xml节点.突然见遗忘了许多.上网看了些资料.才整出来.脑袋真不够用.在这里把我找到的资料共享一下.方便以后使用.本文属于网摘/ 1 一.简单介绍2 using System.Xm ...
- Android 解析XML文件和生成XML文件
解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...
- xml文件的生成与解析
生成方法一:同事StringBuffer类对xml文件格式解析写入 package com.steel_rocky.xml; import android.app.Activity; import a ...
- xml文件配置新增与读取
xml文件 <?xml version="1.0" encoding="utf-8" ?> <Config> <dbtype> ...
- C#操作xml文件:使用XmlDocument 实现读取和写入
XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...
- 项目常用解决方案之SystemSetting.xml文件的修改与读取
Winform及WPF项目中经常会用到类似SystemSetting.xml等类似的文件用于保存CLIENT的数据,比如登录过的用户名或密码以及其他设置.所以就想到一个解决方法,可以用到所有有此需求的 ...
- 根据xml文件自动生成xsd文件
根据xml生成xsd文档 1. 找到vs自带的xsd.exe工具所在的文件夹位置: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 注意 ...
随机推荐
- 【分享】哪个OS X版本支持哪个Xcode的版本?
在安装Xcode时,会碰到跟OS X操作系统匹配的问题,对照下下面几个表,以免给自己带来编译不过或者奇怪的错误等问题 以下列表来自网络: Xcode 1.0 - Xcode 2.x (before i ...
- 软件设计之UML—UML的构成[上]
UML是一种通用的建模语言,其表达能力相当的强,不仅可以用于软件系统的建模,而且可用于业务建模以及其它非软件系统建模.UML综合了各种面向对象方法与表示法的优点,至提出之日起就受到了广泛的重视并得到了 ...
- 【转】Java之 内存区域和GC机制
转自:Leo Chin 目录 Java垃圾回收概况 Java内存区域 Java对象的访问方式 Java内存分配机制 Java GC机制 垃圾收集器 Java垃圾回收概况 Java GC(Garbage ...
- 以一个上传文件的例子来说 DistributedFileSystem
public class UploadAndDown { public static void main(String[] args) { UploadAndDown uploadAndDown = ...
- PHP学习笔记05——面向对象
<?php //1. 类的声明(包括构造方法.析构方法) class PersonA { var $name; //成员属性,用var声明 public $age; //当有其他修饰的时候,就不 ...
- Xdebug的安装与使用
php下搭配使用xdebug是十分好的组合,用于php的调试工作,下面分别介绍之: 1 WINDOWS下的安装 下载站点http://www.xdebug.org/ 要确定使用一个跟你的PHP配合 ...
- 一个基于PDO的数据库操作类(新) 一个PDO事务实例
<?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录 ...
- Remember-Me功能
Remember-Me功能 目录 1.1概述 1.2基于简单加密token的方法 1.3基于持久化token的方法 1.4Remember-Me相关接口和实现类 1.4.1TokenBasedReme ...
- 转深入学习heritrix---体系结构(Overview of the crawler)
Heritrix采用了模块化的设计,它由一些核心类(core classes)和可插件模块(pluggable modules)构成.核心类可以配置,但不能被覆盖,插件模块可以被由第三方模块取代. ( ...
- cp: omitting directory”错误的解释和解决办法
在linux下拷贝的时候有时候会出现cp:omitting directory的错误 ,例如 cp:omitting directory "bbs" 说明bbs目录下面还有目录,不 ...