怎么用C#将一个xml分割成多个xml

sunsunsun1234 2012-03-07 10:00:43
比如说有这样一个xml
<structure>
<Product>
<a value="">
<b value="">
</Product>
<Product>
<a value="">
<b value="">
</Product>
</structure>
我想分割成
1.xml
<Product>
<a value="">
<b value="">
</Product>
2.xml
<Product>
<a value="">
<b value="">
</Product>

我不太清楚该怎么实现。请教高手
...全文
236 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunsunsun1234 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 huangwenquan123 的回复:]
XmlNodeList node = xml.SelectNodes("/STRUCTURE/Product");
[/Quote]

哈哈哈哈 谢谢了~!!
囧……竟然是因为大小写……
嘿嘿 反正还是谢谢了呀~!
huangwenquan123 2012-03-07
  • 打赏
  • 举报
回复
XmlNodeList node = xml.SelectNodes("/STRUCTURE/Product");
sunsunsun1234 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huangwenquan123 的回复:]
C# code
int i=1;
XmlDocument xml = new XmlDocument();
xml.Load(@"E:\a.xml");
XmlNodeList node = xml.SelectNodes("/structure/Product");
……
[/Quote]
嘿嘿,这个我用刚才的示例测试的时候是成功的
但为什么我用底下这个xml就失败了呢?

<STRUCTURE xmlns="">
<Product>
<BRANDID Value="844" />
<BRANDNAME Value="佳能" />
<CLASSID Value="18" />
<CLASSNAME Value="数码摄像摄影产品" />
<SUBCLASSID Value="36" />
<SUBCLASSNAME Value="数码相机" />
<CONFIGSUMMARY Value="约1800万像素图像感应器;双DIGIC 4,约8张/秒高速连拍;中央八向双十字,全19点十字AF;视野率、放大倍率双100%的取景器" />
<KID Value="7" />
<SERIESNAME Value="EOS 7D机身" />
<IFENERGY Value="否" />
<ENERGYBOOKID Value="" />
<IFENVPROTE Value="否" />
<ENVPROTEBOOKID Value="" />
<IFINNOVATION Value="否" />
<INNOVATIONBOOKID Value="" />
<FACTORYPRICE Value="10000.00" />
<FILESTATUS Value="" />
<GOODSTATUS Value="非现货" />
<PRODUCTSTATUS Value="在产" />
<MANUFACTURER Value="佳能(中国)有限公司" />
<OPERATOR Value="佳能(中国)有限公司" />
<MEMO Value="约1800万像素图像感应器;双DIGIC 4,约8张/秒高速连拍;中央八向双十字,全19点十字AF;视野率、放大倍率双100%的取景器;检测色彩信息的63区双层测光感应器;防水滴防尘机身,15万次快门寿命;最高30帧/秒全高清短片拍摄;92万点,3.0”清晰显示LCDⅡ型。 3个工作日内供货" />
<OPERDATE Value="2011-01-19 10:16:04" />
<UNIT Value="台" />
<PRODID Value="35030" />
<SERIESID Value="" />
</Product>
<Product>
<BRANDID Value="844" />
<BRANDNAME Value="佳能" />
<CLASSID Value="18" />
<CLASSNAME Value="数码摄像摄影产品" />
<SUBCLASSID Value="36" />
<SUBCLASSNAME Value="数码相机" />
<CONFIGSUMMARY Value="约1800万像素图像感应器;双DIGIC 4,约8张/秒高速连拍;中央八向双十字,全19点十字AF;视野率、放大倍率双100%的取景器" />
<KID Value="7" />
<SERIESNAME Value="EOS 7D机身" />
<IFENERGY Value="否" />
<ENERGYBOOKID Value="" />
<IFENVPROTE Value="否" />
<ENVPROTEBOOKID Value="" />
<IFINNOVATION Value="否" />
<INNOVATIONBOOKID Value="" />
<FACTORYPRICE Value="10000.00" />
<FILESTATUS Value="" />
<GOODSTATUS Value="非现货" />
<PRODUCTSTATUS Value="在产" />
<MANUFACTURER Value="佳能(中国)有限公司" />
<OPERATOR Value="佳能(中国)有限公司" />
<MEMO Value="约1800万像素图像感应器;双DIGIC 4,约8张/秒高速连拍;中央八向双十字,全19点十字AF;视野率、放大倍率双100%的取景器;检测色彩信息的63区双层测光感应器;防水滴防尘机身,15万次快门寿命;最高30帧/秒全高清短片拍摄;92万点,3.0”清晰显示LCDⅡ型。 3个工作日内供货" />
<OPERDATE Value="2011-01-19 10:16:04" />
<UNIT Value="台" />
<PRODID Value="35030" />
<SERIESID Value="" />
</Product>
</STRUCTURE>
huangwenquan123 2012-03-07
  • 打赏
  • 举报
回复
            int i=1;
XmlDocument xml = new XmlDocument();
xml.Load(@"E:\a.xml");
XmlNodeList node = xml.SelectNodes("/structure/Product");
foreach (XmlNode n in node)
{
XmlDocument x = new XmlDocument();
XmlDeclaration dec = x.CreateXmlDeclaration("1.0", "utf-8", null);
x.AppendChild(dec);
XmlNode Product = x.ImportNode(n, true);
x.AppendChild(Product);
x.Save(@"E:\" + i + ".xml");
i++;
}
第七章
案例1通过委托实现异步调用
案例2使用定时器执行方法
案例3控制线程状态
案例4多线程同步的实现
案例5结束进程
案例6多线程资源共享与访问
案例7仅运行一个应用程序实例
案例7如何保证当前仅运行一个应用程序实例
案例8开始一个新线程
第八章
案例1如何应用HTTP协议下载文件
案例2如何利用流下载文件
案例3获取当前主机名和IP
案例4自制浏览器
案例5利用TCP协议实现通讯
案例7多线程TCP服务端实现
案例6用Socket连接获取客户端地址
案例8如何实现UDP通讯协议
案例9如何使用STMP协议发送电子邮件
第九章
SQL命令或存储过程如何使用参数
案例1如何连接SQL Server数据库
案例2应用连接池实现SQL Server数据库更新
案例3SQL命令或存储过程如何使用参数
案例4使用DataReader处理查询结果
案例6如何显示修改数据库中的图片信息
案例7如何使用水晶报表
如何连接SQL Server数据库
如何使用水晶报表
如何显示修改数据库中的图片信息
使用DataReader处理查询结果
应用连接池实现SQL Server数据库更新
第十章
案例1如何实现Web页面的跳转
案例2如何实现Web页面之间请求的信息保存
案例3Web页中如何添加JavaScript客户端事件
案例4Web页中如何用JavaScript实现弹出式窗口
案例5Web页中如何实现用户上传文件
案例6实现Web页输入的有效性验证
案例7在Web页中如何动态添加控件
案例8在Web页中如何使用正则表达式控件
案例9如何创建Web Service应用程序
第十一章
案例1写XML文档
案例2创建XML文档
案例3读取XML文档内容显示在树视图中
案例4分割XML文档
案例5查询XML文档
Jakarta commons docs API CHM 格式带索引和全文搜索,方便携带和查询。 Jakarta commons 包含很多可复用的通用组件。 commons-attributes 让开发者可以使用 C# 或 .net 样式的 attributes, 是一种运行时的 api, 有点类似 doclet commons-beanutils 提供对 Java 反射和自省API的包装 commons-betwixt 这个组件提供一个XML自省(introspection)机制用来把Java Bean映射到XML文档 commons-chain 提供实现组织复杂的处理流程的“责任链模式” commons-cli 命令行参数解析 , 由 Werken, Avalon 和 Optz 组 commons-codec 包含一些通用的编码解码算法。包括一些语音编码器, Hex, Base64, 以及URL encoder. commons-collections 扩充了 java.util.collection 接口 commons-compress 操作压缩文件的 API commons-configuration 可以从xml、properties、JNDI、JDBC、System properties、Applet parameters和Servlet parameters等读取信息 commons-daemon 可以帮你实现将一个普通的 Java 应用变系统的一个后台服务 commons-dbcp 数据连接池服务 commons-dbutils JDBC 辅助类 commons-digester XML 文件到 Java 对象的映射机制 commons-discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。 commons-el 提供在JSP2.0规范中定义的EL表达式的解释器. commons-email 提供一组用于发送Email的API,它基于Java Mail API基础之上并进行了简化 commons-exec 处理外部进程的执行或管理外部环境 commons-fileupload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力 commons-io 用来帮助进行IO功能开发.它包含三个主要的领域:Utility classes-提供一些静态方法来完公共任务.Filters-提供文件过滤器的各种实现.Streams-提供实用的Stream,reader与 writer实现 commons-jelly 能够把XML转换可执行代码,所以Jelly是一个基于XML与Java的脚本和处理引擎 commons-jexl 是一个表达式语言,通过借鉴来自于Velocity的经验扩展了JSTL定义的表达式语言 commons-jxpath 定义了一个简单的XPath表达式语言的解析器.JXPath应用XPath表达式来操纵各种类型的对象包括:JavaBeans,Maps,Servlet contexts,DOM等 commons-lang commons的基础包 commons-launcher 提供多平台的 Java 程序加载 commons-logging 提供日志的实现 commons-math 是一个轻量的,自包含的数学和统计组件,解决了许多非常通用但没有及时出现在Java标准语言中的实践问题. commons-modeler 创建符合 JMX 规范的 MBeans 机制 commons-net 网络和协议实现的集合 commons-pool 提供了通用对象池接口,一个用于创建模块化对象池的工具包,以及通常的对象池实 commons-primitives java 简单类型使用的扩展 commons-proxy 创建动态代理的库 commons-scxml commons-transaction 处理多级事务的集合 commons-validator 提供了一个简单的,可扩展的框架来在一个XML文件中定义校验器 (校验方法)和校验规则 commons-vfs 虚拟文件系统 httpcomponents-client 和 http 协议客户端一起协作的框架 httpcomponents-core jakarta-oro 一套文本处理工具,能提供perl5.0兼容的正则表达式,AWK-like正则表达式, glob表达式。还提供替换,分割,文件名过虑等功能 jakarta-regexp 是一个100%纯java正则式处理包,是Jonathan Locke捐给Apache软件基金会的
资源简介 Jakarta commons docs API CHM 格式带索引和全文搜索,方便携带和查询。 Jakarta commons 包含很多可复用的通用组件。 commons-attributes 让开发者可以使用 C# 或 .net 样式的 attributes, 是一种运行时的 api, 有点类似 doclet commons-beanutils 提供对 Java 反射和自省API的包装 commons-betwixt 这个组件提供一个XML自省(introspection)机制用来把Java Bean映射到XML文档 commons-chain 提供实现组织复杂的处理流程的“责任链模式” commons-cli 命令行参数解析 , 由 Werken, Avalon 和 Optz 组 commons-codec 包含一些通用的编码解码算法。包括一些语音编码器, Hex, Base64, 以及URL encoder. commons-collections 扩充了 java.util.collection 接口 commons-compress 操作压缩文件的 API commons-configuration 可以从xml、properties、JNDI、JDBC、System properties、Applet parameters和Servlet parameters等读取信息 commons-daemon 可以帮你实现将一个普通的 Java 应用变系统的一个后台服务 commons-dbcp 数据连接池服务 commons-dbutils JDBC 辅助类 commons-digester XML 文件到 Java 对象的映射机制 commons-discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。 commons-el 提供在JSP2.0规范中定义的EL表达式的解释器. commons-email 提供一组用于发送Email的API,它基于Java Mail API基础之上并进行了简化 commons-exec 处理外部进程的执行或管理外部环境 commons-fileupload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力 commons-io 用来帮助进行IO功能开发.它包含三个主要的领域:Utility classes-提供一些静态方法来完公共任务.Filters-提供文件过滤器的各种实现.Streams-提供实用的Stream,reader与 writer实现 commons-jelly 能够把XML转换可执行代码,所以Jelly是一个基于XML与Java的脚本和处理引擎 commons-jexl 是一个表达式语言,通过借鉴来自于Velocity的经验扩展了JSTL定义的表达式语言 commons-jxpath 定义了一个简单的XPath表达式语言的解析器.JXPath应用XPath表达式来操纵各种类型的对象包括:JavaBeans,Maps,Servlet contexts,DOM等 commons-lang commons的基础包 commons-launcher 提供多平台的 Java 程序加载 commons-logging 提供日志的实现 commons-math 是一个轻量的,自包含的数学和统计组件,解决了许多非常通用但没有及时出现在Java标准语言中的实践问题. commons-modeler 创建符合 JMX 规范的 MBeans 机制 commons-net 网络和协议实现的集合 commons-pool 提供了通用对象池接口,一个用于创建模块化对象池的工具包,以及通常的对象池实 commons-primitives java 简单类型使用的扩展 commons-proxy 创建动态代理的库 commons-scxml commons-transaction 处理多级事务的集合 commons-validator 提供了一个简单的,可扩展的框架来在一个XML文件中定义校验器 (校验方法)和校验规则 commons-vfs 虚拟文件系统 httpcomponents-client 和 http 协议客户端一起协作的框架 httpcomponents-core jakarta-oro 一套文本处理工具,能提供perl5.0兼容的正则表达式,AWK-like正则表达式, glob表达式。还提供替换,分割,文件名过虑等功能 jakarta-regexp 是一个100%纯java正则式处理包,是Jonathan Locke捐给Apache软件基金会的

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧