⑴ C#如何往xml存入数据
呵呵 我正好信毕慧刚刚做的
引用空间
using System.IO;
using System.Net;
using System.Text;
StringBuilder htmltext = new StringBuilder();//存储xml内容
string newsTemp = HttpContext.Current.Server.MapPath("/广告/js/ad.XML");
Encoding code = Encoding.GetEncoding("gb2312");
try
{
using (StreamReader sr = new StreamReader(newsTemp, code))
{
String line;
while ((line = sr.ReadLine()) != null)
{
htmltext.Append(line + "\r");
}
sr.Close();
}
}
catch
{
return false;
}
//图片新闻特效显示
//newsds = topda.selecttupiannews();//读取数据可以
//for (int i = 0; i < newsds.Tables[0].Rows.Count; i++)
//{
// htmltext.Replace("$focusPicurl[" + i + ",0]", newsds.Tables[0].Rows[i]["SiteUrl"].ToString());
// htmltext.Replace("$focusPicurl[" + i + ",1]"数姿, "/uploadfiles/uppic/ggpic/" + newsds.Tables[0].Rows[i]["ImagesUrl"].ToString());
// htmltext.Replace("$focusPicurl[" + i + ",2]", newsds.Tables[0].Rows[i]["Title"].ToString());
// htmltext.Replace("$focusPicurl[" + i + ",3]", newsds.Tables[0].Rows[i]["des"].ToString());
/滑答/}
using (StreamWriter sw = new StreamWriter(test, false, System.Text.Encoding.GetEncoding("gb2312")))
{
sw.WriteLine(htmltext);
sw.Flush();
sw.Close();
}
return true;
⑵ xml文件在内存中是怎么存储的
你可以用流的形式读到程序中,也可以以文本的方法读进去。文本和流都是可以相互转换的,看你具体需要。xml处理类XmlReader.Create可以用流创建,也可以用文本创建,重载方式很多。本质上它在内存里也是以二进制形式存在的,和一般文件没什么区别。
⑶ 如何使用xml 存储数据
创建一个接口
XmlInterface.java
?
public interface XmlInterface {
/**
* 建立XML文档
* @param fileName 文件全路径名称
*/
public void createXml(String fileName);
/**
* 解析XML文春基改档
* @param fileName 文件全路锋冲径名称
*/
public void parserXml(String fileName);
}
接口实现
XmlImpl.java
?
package com.test.xml;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XmlImpl implements XmlInterface{
private Document document;
public void init() {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
this.document = builder.newDocument();
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
}
}
public void createXml(String fileName) {
Element root = this.document.createElement("scores");
this.document.appendChild(root);
Element employee = this.document.createElement("扒判employee");
Element name = this.document.createElement("name");
name.appendChild(this.document.createTextNode("wangchenyang"));
employee.appendChild(name);
Element sex = this.document.createElement("sex");
sex.appendChild(this.document.createTextNode("m"));
employee.appendChild(sex);
Element age = this.document.createElement("age");
age.appendChild(this.document.createTextNode("26"));
employee.appendChild(age);
root.appendChild(employee);
TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
System.out.println("生成XML文件成功!");
} catch ( e) {
System.out.println(e.getMessage());
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (TransformerException e) {
System.out.println(e.getMessage());
}
}
public void parserXml(String fileName) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(fileName);
NodeList employees = document.getChildNodes();
for (int i = 0; i < employees.getLength(); i++) {
Node employee = employees.item(i);
NodeList employeeInfo = employee.getChildNodes();
for (int j = 0; j < employeeInfo.getLength(); j++) {
Node node = employeeInfo.item(j);
NodeList employeeMeta = node.getChildNodes();
for (int k = 0; k < employeeMeta.getLength(); k++) {
System.out.println(employeeMeta.item(k).getNodeName()
+ ":" + employeeMeta.item(k).getTextContent());
}
}
}
System.out.println("解析完毕");
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
} catch (SAXException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
测试
?
public class Main {
public static void main(String args[]){
XmlImpl dd=new XmlImpl();
String str="D:/grade.xml";
dd.init();
dd.createXml(str); //创建xml
dd.parserXml(str); //读取xml
}
}
结果
生成xml
<?xml version="1.0" encoding="GB2312"?><scores><employee><name>wangchenyang</name><sex>m</sex><age>26</age></employee></scores>复制代码
⑷ 请问xml文件是什么
XML是EXtensible Markup Language的缩写XML是一种类似于HTML的标记语言XML是用来描述数据的XML的标记不是在XML中预定义的,你必须定义自己的标记XML使用文档类型定义(DTD)或者模式(Schema)来描述数据XML使用DTD或者Schema后就是自描述的语言XML和HTML的主要区别是什么XML是用来存放数据的XML不是HTML的替代品,XML和HTML是两种不同用途的语言。XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。HTML是被设计用来显示数据的,重点是:显示数据以及如何显示数据更好上面。HTML是与显示信息相关的, XML则是与描述信息相关的。
xml功能太强大了,举几个例子吧
1、可以做为数据库存储数据
读操作:
假如你的web应用程序里有一个Procts.xml,你可以用DataSet来读取这个xml,然后绑定到DataList,DataGrid等的控件上
写操作:
如果你建立一个购物车的DataTable,就可以将它写入到xml文件中去
2、如果你会用xsl,可以将xml整合到首页上,让你更新网页更容易,也很容易管理,样式改动也方便
3、关于xml的技术太多了,xpath,xquery,xslt等等,包括语音标记、矢量图标记等等,详情请参照www.w3.org
4、一般的说,xml已经广泛的应用,你用的office软件保存的doc,xls等等的格式背后都是xml标记,一些矢量图的软件Visio,做出的图形其实都是基于xml技术的,ajax技术也是基于xml技术的
5、忘了最重要的一个未来会大大发展的技术,web services,实质也是xml的一种应用
⑸ c#winform怎么用xml存储数据
把数据写成XML文件,再把文件存储到硬盘
⑹ 怎样将xml文件存入数据库,不是去把xml解析了或是以表格形式创建同格式的表去存储,数据库中的xml类型
内容不是特别多的话可以当一个字符串整个存到一个字段里面
当然 非常不推荐这么做
⑺ XML是一种什么语言可以做些什么
XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中宏尺塌跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
XML 的优势有以下六个方面:①XML可以从HTML中分离数据通过XML,你可以在HTML文件之外存储数据。在不使用XML时,HTML用于显示数据,数据必须存储在HTML文件之内;使用了XML,数据就可以存放在分离的困吵XML文档中。这种方法可以让你集中精力去到使用HTML做好数据的显示和布局上,并确保数据改动时不会导致HTML文件也需要改动。这样可以方便维护页面。XML数据同样可以以“数据岛”的形式存储在HTML页面中。你仍然可以集中精力到使用HTML格式化和显示数据上去。②XML用于交换数据通过XML,我们可以在不兼容的系统之间交换数据。在现实生活中,计算机系统和数据库系统所存储的数据有N^N种形式,对于开发者来说,最耗时间的就是在遍布网络的系统之间交换数据。把数据转换为XML格式存储将大大减少交换数据是的复杂性,并且还可以使得这些数据能被不同的程序读取。③XML和B2B使用XML,可以在网蔽圆络中交换金融信息。在不远的将来,我们可以期望看到很多关于XML和B2B(BusinessToBusiness)的应用。XML正在成为遍布网络的商业系统之间交换金融信息所使用的主要语言。许多与B2B有关的完全基于XML的应用程序正在开发中。④XML可以用于共享数据通过XML,纯文本文件可以用来共享数据。既然XML数据是以纯文本格式存储的,那么XML提供了一种与软件和硬件无关的共享数据方法。这样创建一个能够被不同的应用程序读取的数据文件就变得简单了。同样,我们升级操作系统、升级服务器、升级应用程序、更新浏览器就容易多了。XML可以用于存储数据利用XML,纯文本文件可以用来存储数据。大量的数据可以存储到XML文件中或者数据库中。应用程序可以读写和存储数据,一般的程序可以显示数据。⑤XML可以充分利用数据使用XML,你的数据可以被更多的用户使用。既然XML是与软件、硬件和应用程序无关的,所以可以使你的数据可以被更多的用户、更多的设备所利用,而不仅仅是基于HTML标准的浏览器哦。别的客户端和应用程序可以把你的XML文档作为数据源来处理,就像他们对待数据库一样,你的数据可以被各种各样的“阅读器”处理,这时对某些人来说是很方便的,比如盲人或者残疾人。⑥XML可以用于创建新的语言XML是WAP和WML语言的母亲。无线标记语言,用于标识运行于手持设备上的Internet程序。
⑻ xml标签的正确使用
最近一直在学习xml相关的知识,为了知识的积累以及方便以后查阅,写了这篇关于xml的文章,同时也为正在学习xml标签的网友或者对xml知识感兴趣的,这篇文章不容错过。
首先我们需要了解的是xml是什么,它能做什么事情以及如何去学习它
xml全称 Extensiable markup language. 译为可扩展标记语言 可扩展也就是标签可以自定义
这也是和html的区别之一
在讲解xml知识之前我们先来做下对比xml与html到底有哪些区别
1.xml标签是自定义的,html标签是预定义
2.xml语法严格,html语法松散
3.xml存储数据,html展示数据
在软件开发中,我们可以使用xml来存储数据
储存方式有两种
1.存储文件
2.网络中传输
基本语法
1.xml文档的后缀名,.xml
2.xml的第一行必须定义文档申明 <?xml version=‘1.0’?>文档申明
3.xml文档有且仅有一个根标签
4.属性值必须用引号引起来’’或唯激“”
5.标签指返袜必须正确关闭
6.xml标签名称区分大小写
1.格式<?xml属性列表?>
属性列表:
version:版本号
encoding:编码方式 告知解析引擎 当前文档使用的字符集 默认值ISO-8859-1
standalone :是否独立
取值:yes:不依赖其他文件 no:依赖其他文件
结合css来控制标签的样式<?xml-stylesheet type=“text/css” href=“xxx”?>
1.规则:
* 名称可以含字母、数字以及其他的字符
* 名称不能以数字或者标点符世拦号开始
* 名称不能以字符 “xml”(或者 XML、Xml)开始
* 名称不能包含空格
id属性值唯一
cdata区格式:在该区域中的数据会被原样展示
格式<![CDATA[{
首先我们先来看下约束的解析图
作为框架的使用者(程序员)
1.能够在xml中引入约束文档
2.能够简单的读懂约束文档
DTD技术
Schema:一种比较复杂的约束
DTD:
引入dtd文档到xml文档中
内部的dtd:将约束规则定义在xml文档中
一种是外部的dtd:将约束的规则定义在外部的dtd文件中
1.本地:<!DOCTYPE 根标签名 SYSTEM “dtd文件的位置”>
2.网络:<!DOCTYPE 根标签名 PUBLIC “dtd文件名字” “dtd文件的位置URL”>
操作xml文档
1.解析(读取):将文档中的数据读取到内存中,
2.写入:将内存中的数据保存到xml文档中,持久化的存储
1.DOM:将标记语言文档一次性加载到内存,在内存中形成一颗DOM树
优点:操作方便,可以对文档进行CRUD的所有操作
缺点:占内存
2.SAX:逐行读取,基于事件驱动的
优点:不占内存
缺点:只能读取,不能增删改
xml常见的解析器:
1.JASP:sun公司提供的解析器 支持dom和sax思想
2.DOM4J:一款非常优秀的解析器
3.jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据
4:PULL:android操作系统内置的解析器
快速入门:
步骤:
1.导入相关的jar包
2.获取document对象
3.获取对应的标签Element对象
4.获取数据
这里我以jsoup为例
对象的使用
1.jsoup:工具类,可以解析html或xml文档,返回document
parse:解析html或xml文档,返回document
parse(File in,String charset);解析html或xml文档的
parse(String html)解析html或xml字符串
parse(Url url, int timeoutMills)通过网络路径获取指定的html或xml的文档对象
2.Document:文档对象,代表文档中的dom树 获取Elements对象
getElementById(String id),根据id属性值获取唯一的element对象
getElementsByTag(String tagName)根据标签名称获取元素对象集合
getElementsByAttribute(String key) 根据属性名称获取元素对象集合
getElementsByAttributeValue(String key,String value)根据对应的属性名和属性值获取元素对象集合
3.Elements:元素Element对象的集合,可以当作ArrayList<Element> 来使用
4.Element:元素对象
1.获取到它的子元素对象
5.Mode:节点对象
是document和element的父类
快速查询方式:
1.selector选择器
使用方法:Elements select(String cssQuery)
语法:参考Selector类中定义的语法
2.xpath: XPath 即为 XML 路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
语法
// 查询所有元素1标签
//元素1/元素2。查询所有元素1中的所有元素2
带有id属性的标签
//元素1/元素2[@id]
带有id属性值的标签元素1/元素2[@id=‘属性值’]
使用Jsoup的Xpath需要额外的导入jar包
查询w3c参考手册,使用xpath的语法完成
⑼ .XML是什么文件
.XML文件一般指里面写有可扩展标记语言的文件。
XML:可扩展标记语言,标准通用版标记语言的子集,是一权种用于标记电子文件使其具有结构性的标记语言。它被设计用来传输和存储数据。
XML,是Extensible Markup Language 的缩写。在.NET框架中XML是非常重要的一部分,它用于描述数据,是当前处理结构化文档信息的有力工具。XML与操作系统、编程语言的开发平台无关,可以实现不同系统之间的数据交互!
XML 是各种应用程序之间进行数据传输的最常用的工具。
(9)xml是怎么存储数据的扩展阅读:
XML语言的特点:
1、XML中的每对标记通常被称为节点,他们是成对出现而且必须是成对出现的,用来描写这个节点存储的内容。在节点中存储该节点的信息。
2、XML中用于描述数据的各个节点可以自由扩展,也就是说XML用于描述信息的标记不是固定不变的。例如可以在一个demo中对每个员工的信息进行详细扩展,如:身高,体重等。
3、XML文件中的节点区分大小写,例如<Name></Name>和<name></naem>,即使两个节点存储的内容相同 ,XML也认为他们是两个不同的节点。
参考资料来源:网络-可扩展标记语言
⑽ 关系数据库中如何存储xml数据
XML文档的一个普通存在的问题是如何持久保存(Persist) XML文档。在一个关系数据库中存储XML文档是一个非常常用的方法,因为当前关系数据库的使用非常广泛。
将XML文档插入到数据库中不是简单的方法,这其中需要很多其它额外的考虑。现在我提供了一些技巧,你可以使用这些技巧在关系数据库中存储XML文档。
1、文档表:
一个最简单和容易的方法是,在一个具有单一文本域的数据库中建立一个表,由此你可以在表中存储XML数据。由于这些特定数据库和特定XML文档,这一文本域可以是一个二进制大型对象(BLOB,binary large object)。有些数据库需要存储的是大量的BLOB数据而不是文本。
这一方法的优点是,将数据存入表中变得相当简单,而且重新获得也同样很容易。这种文档表的管理也很方便。
这种方法的缺点在于你将可能无法进行一些有用的文本搜索,并且在放置特定文档时也会碰到困难,因为没有任何方法来识别表中的文档;
2、主键表:
下一个比较复杂的方法是使用一个主键表(keyed table)。这种方法与文档表非常相似,但此时你的表中包含两个域:一个唯一的主键和XML文档。使用这种方法,你既可以具有存储和获得整个XML文档的简洁性,也可以使用一些管理这些唯一主键的复杂操作;
建立主键的一种通用方法是使用XML文档中的MD5求和检验。请记住如果你想在表中包括多份XML文档,这一方法远不足够。在这种情况下,你可以添加额外的key fields标识键列。
与文档表一样,主键表很容易执行,它可以在表中查找特定的文档。然而,与文档表一样,你仍然不能执行任何文本查询;
3、有限离散表:
这一方法更加复杂,但它给你带来更多的灵活性。使用有限离散表,你可以建立用于存储有限分散的XML信息的表,这是什么意思?请看以下的例子:
假设你具有一个顺序文档。在文档的根部(Root)有一个Order元素,这一元素包括CustomerInfo, ItemInfo, 以及hippingInfo元素。在数据库中,你可以建立一个OrderDoc表,表中包含一个ID域,一个CustomerInfoId域,一个ItemInfoId域,一个ShippingInfoId域。然而,你还可以建立一个CustomerInfoId表,一个ItemInfoId表,一个ShippingInfoId表。这些表都包含很多信息相关的各自的ID域,这些信息包括用户,选项,邮寄信息。在这一表中,还包含着其它额外的等级。比如,CustomerInfo表包含AddressInfo域,即从AddressInfo表中引用的入口。
这种方法的优点是,允许你更紧密地建立XML数据的模型。这种方法使得你进行数据的一些成熟的查询。它也使得数据的使用性更强,因为你不再需要XML分析器来读取数据。
不足之处是这种方法需要更多的精力来开发和维护。这意味着每一文档都需要解析成分离的部分,然后存储在数据库中。如果这一过程没有得以很好管理,有可能会丢失一些数据。而且,这也意味着,当从一个数据库中获得一个XML文档时,你不得不连接这些分散的部分。