今天宠物迷的小编给各位宠物饲养爱好者分享xml怎么写的宠物知识,其中也会对学习XML:如何书写XML?(xml教学)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
不过这些规则通常很简单,易于理解。下面我们就将描述这些规则。
XML文档版本
XML文档的第一行用来定义该文档使用的XML的版本,下面代码中的<?xml标签后面的属性值定义了该XML文档使用的版本为1.0。
<Sections<ado
<codeSource Code Section of C-Sharp Corner</code
<articlesSource Code Section of C-Sharp Corner</articles</ado
<Graphics
<codeGDI+ source Code Section of C-Sharp Corner</code
<articlesSource Code Section of C-Sharp Corner</articles
</Graphics
</Sections
XML元素命名
XML元素不能包含空格;
XML元素不能以数字或标点符号开头;
XML元素可以包含字母、数字和其他符号;大小写敏感和HTML不同,XML是大小写敏感的。因此,<Section标签和<section标签是不同的;如果你书写了如下的代码:
<Section This is a section </section
XML解析器不会解析这条语句而是给出错误信息。根节点
每一个XML文档都必须有根节点。上面的XML文档中,<Section就是它的根节点。完整的标签
XML的每一个标签都必须有对应的结束标签。没有结束标签的代码是无效的,下面的代码就包含了一个无效的XML标签:
<Section This is a section合适的次序
和HTML不同,XML标签不能随意放置。例如,下面的代码在HTML中是正确的,而在XML中是无效的:
<b<i This is a section </b</i
正确的代码应该是这样的:
<b<i This is a section </i</b
空格也是XML文档的一部分
空格是XML文档的一部分;和HTML不同,在XML中空格也会在浏览器中显示出来。
属性值必须包含在一对双引号中
属性值必须放置在一对双引号中,否则是无效的。例如:
上面的代码中,C#没有包含在双引号中,因而是无效的。
xml是类似这种的:
可以在节点中加属性例如:
java代码解析一般用DOM4j.分两种类型的解析方式:
1.DOM: Document Object Model 文档对象模型
树形结构装载到内存中.完成后才开始解析.
缺点:如果文件比较大,内存有压力,时间会延迟.
优点:可以对树形结构做任何操作:加节点,删节点,遍历...
2.SAX: Simple API for XML
流(Stream)的特征,解析可以立即开始.
不保存数据. 对内存无压力.不能修改节点.
适合大文件的解析.
下面附上代码:
public static List parseCustomXML(String fileName) {
// 定义解析器
SAXReader saxReader = new SAXReader();
List eleList = new ArrayList();
// 开始解析,返回文档对象
/*
*
totalLenght
bodyLenght
jydm
msgType
sendSign
msgCheckCode
serviceName
msgAgreement
cprq
fkrzh
pjhm
je
zfmm
jgh
yhdm
*/
try {
Document doc = saxReader.read(new File(fileName));
Element root = doc.getRootElement();// 获取根节点
Element msg = root.element("msg");
Iterator itEle = msg.elementIterator("element");// 遍历msg节点下的所有element节点
while (itEle.hasNext()) {
Element element = (Element) itEle.next();
String value = element.getText();
//测试
System.out.println(value);
eleList.add(value);
Iterator itAttr = element.attributeIterator();// 遍历每一个element节点的所有属性
while (itAttr.hasNext()) {
Attribute attr = (Attribute) itAttr.next();
//String keyAttr = attr.getName();
String valueAttr = attr.getValue();
//测试
System.out.println(valueAttr);
eleList.add(valueAttr);
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
return eleList;
}
有不明白的 在帮你分析
xml没有你说的作用,xml就是普通的纯文本,xml能起的作用只有传输数据,而不能处理数据,处理xml的结果由处理它的程序来决定
kevin
john
go to the park at 9.00
xml可以用记事本编辑,保存格式为.xml
xml必须以开头,encoding部分随意
xml必须有一个以上标签,即根标签,本例是
xml标签格式与html相同,但更严格。xml所有标签都必须闭合。
xml标签可以有属性。
一个标签称为一个元素节点,标签中的文本称为文本节点,属性称为属性节点。
所有标签都有一个相同的父元素,即根标签。
元素可以有子元素,如本例中,note元素的子元素为from,to,body,元素可以有任意个子元素,0个也行。
开始标签和闭合标签必须完全一致,否则导致错误,如将导致错误,必须是。
标签可以是任意名称。
xml在网页中用ajax处理
记住这些,就可以写xml了。
我以前学dom解析的时候写了一个小例子,你参考参考 package com.lhx.test;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Attr;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Text;public class Test { public static void main(String[] args) { DocumentBuilderFactory fct=DocumentBuilderFactory.newInstance(); try { DocumentBuilder bui=fct.newDocumentBuilder(); Document doc=bui.newDocument(); Element ps=doc.createElement("persons"); Element p1=doc.createElement("person"); Element p2=doc.createElement("person"); Attr id1=doc.createAttribute("id"); Attr id2=doc.createAttribute("id"); id1.setNodeValue("1"); id2.setNodeValue("2"); Element name1=doc.createElement("name"); Text na1=doc.createTextNode("龙大哥"); Element name2=doc.createElement("name"); Text na2=doc.createTextNode("龙大爷"); Element sex1=doc.createElement("sex"); Text se1=doc.createTextNode("帅哥"); Element sex2=doc.createElement("sex"); Text se2=doc.createTextNode("妹子"); doc.appendChild(ps); ps.appendChild(p1); p1.appendChild(name1); p1.setAttributeNode(id1); name1.appendChild(na1); p1.appendChild(sex1); sex1.appendChild(se1); ps.appendChild(p2); p2.appendChild(name2); p2.setAttributeNode(id2); name2.appendChild(na2); p2.appendChild(sex2); sex2.appendChild(se2); try { FileOutputStream fos=new FileOutputStream(new File("E:/longdada.xml")); try { ((org.apache.crimson.tree.XmlDocument)doc) .write(fos); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { fos.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}附图: 这个例子有文本节点的创建,属性的创建等等,基本上可以解决绝大多数XML内容了。无论你想创建什么类型的XML,可以套用里面的方法。 另外,注意:文件通过流创建的时候用到一个类,需要一个jar,这个类我已经用完整形式写出来了,你去网上下载下来,添加进工程即可。 弱国觉得可行,望采纳^_^
XML种数据格式每种数据格式都需要解析器其信息解析所用XML例外用SAX或者DOM构建种解析器首先要先确定需要数据文档位置 验证器用于验证文档否符合规定格式规则公共私 XML说公共规则基本XML本身完备性另外些协议比SVG、WML、XMPP等等;私说自写些XML Schema规定需要XML文档格式 知道看看懂 炊莆谓潮校郢希巍商亢绚御蚂荣循伢乐诺
我以前学dom解析的时候写了一个小例子,你参考参考 package com.lhx.test;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.w3c.dom.Attr;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Text;public class Test { public static void main(String[] args) { DocumentBuilderFactory fct=DocumentBuilderFactory.newInstance(); try { DocumentBuilder bui=fct.newDocumentBuilder(); Document doc=bui.newDocument(); Element ps=doc.createElement("persons"); Element p1=doc.createElement("person"); Element p2=doc.createElement("person"); Attr id1=doc.createAttribute("id"); Attr id2=doc.createAttribute("id"); id1.setNodeValue("1"); id2.setNodeValue("2"); Element name1=doc.createElement("name"); Text na1=doc.createTextNode("龙大哥"); Element name2=doc.createElement("name"); Text na2=doc.createTextNode("龙大爷"); Element sex1=doc.createElement("sex"); Text se1=doc.createTextNode("帅哥"); Element sex2=doc.createElement("sex"); Text se2=doc.createTextNode("妹子"); doc.appendChild(ps); ps.appendChild(p1); p1.appendChild(name1); p1.setAttributeNode(id1); name1.appendChild(na1); p1.appendChild(sex1); sex1.appendChild(se1); ps.appendChild(p2); p2.appendChild(name2); p2.setAttributeNode(id2); name2.appendChild(na2); p2.appendChild(sex2); sex2.appendChild(se2); try { FileOutputStream fos=new FileOutputStream(new File("E:/longdada.xml")); try { ((org.apache.crimson.tree.XmlDocument)doc) .write(fos); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { fos.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}附图: 这个例子有文本节点的创建,属性的创建等等,基本上可以解决绝大多数XML内容了。无论你想创建什么类型的XML,可以套用里面的方法。 另外,注意:文件通过流创建的时候用到一个类,需要一个jar,这个类我已经用完整形式写出来了,你去网上下载下来,添加进工程即可。 弱国觉得可行,望采纳^_^
有很多种方法,最苦力活的就是自己把标签和数据拼在一起保存到文件中,利用System.IO命名空间里的各种类来完成文件的写入操作
可以用IDE提供的类来完成xml文件操作,如XmlDocument类(命名空间是System.Xml)
如果是数据集(DataSet)或数据表(DataTable)对应的方法把所包含的数据封装到xml格式中,如DataSet实例中的GetXml
**器 过滤器 servlet 都配置在xml文件中
前端页面和后台代码 通过xml里面的配置进行lianjie
嗯,这个写起来有点大,但思路简单,因为xml的格式太固定啦,说白了,就是找到规律然后对整个文件逐行做字符串处理.............. 写的时候,尤其是循环的时候,细心点,写一点就查一下,注意索引啊......
比较简单的方法是利用xml序列化对象,然后写入xml文件。做法如下: 1)定义对象Organization和Device [XmlRoot("Organization")] public class Organization { [XmlAttribute] public int Grad { get; set; } [XmlAttribute] public int MaxDeviceId { get; set; } public Device Device { get; set; } } [XmlRoot("Device")] public class Device { [XmlAttribute] public int Id { get; set; } [XmlAttribute] public string Title { get; set; } [XmlAttribute] public string ISIP4 { get; set; } //在此偷懒,只定义了3个 :) }2)生成XML文档。以序用控制台程序演示如何生成XML文档 using System;using System.Xml.Serialization;using System.IO;namespace ConsoleApplication1{ [XmlRoot("Organization")] public class Organization { //详见上面代码 } [XmlRoot("Device")] public class Device { //详见上面代码 } class Program { static void Main(string[] args) { //创建Organization对象org Organization org = new Organization(); org.Grad = 1; org.MaxDeviceId = 1001; //创建Device对象 Device device = new Device(); device.Id = 1001; device.Title = "test"; device.ISIP4 = "180.121.134.160"; //device属于org org.Device = device; //创建XML文件 SerializeDevice(org, @"e:\test.xml"); Console.ReadKey(); } static void SerializeDevice(Organization org, string filename) { XmlSerializer s = new XmlSerializer(typeof(Organization)); TextWriter t = new StreamWriter(filename); s.Serialize(t, org); t.Close(); } }3)运行结果(test.xlm文件) 这个结果中规中矩:带上了两个命名空间!
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“学习XML:如何书写XML?”
上一篇
最好的防尘口罩有哪些
下一篇
新疆辣子鸡的做法 最正宗的做法