创建XML文件:
public boolean createXML(){
try{
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("root");
Element personNode = root.addElement("person");
Element sonNode = personNode.addElement("fristson");
sonNode.setText("lk1");
Element sonNode2 = personNode.addElement("secandtson");
sonNode2.setText("lk2");
OutputFormat opf = OutputFormat.createPrettyPrint();
opf.setEncoding("GB2312");
XMLWriter xmlw = new XMLWriter(new FileWriter("d:\\myXML.xml"),opf);
xmlw.write(doc);
xmlw.close();
return true;
}catch(Exception e){
System.out.println("error: In create XML");
return false;
}
......
如何在VC环境下编写程序读取XML文件?清提供源代码.谢谢.
#import <msxml3.dll> named_guids //导入动态库,装了IE5就有
using namespace MSXML2; //引用命名空间,一般可以把命名空间理解成类和接口的集合,呵呵,对不对我也不知道了
#include <vector>
using namespace std;
struct FIELD
{
public:
CString name;
CString type;
CString length;
CString explain;
CString allowNull;
CString autoIncrease;
};
class Xml
{
public:
Xml(void);
~Xml(void);
private:
HRESULT hr;
MSXML2::IXMLDOMDocumentPtr pDoc; //XML文档接口指针
public:
void AddKey(CString moduleName,CString keyName, CString keyValue);
CString ReadKeyValue(CString moduleName, CString keyName);
private:
void NewDocument(CString moduleName, CString keyName, CString keyValue);
public:
bool ReadTable(CTreeCtrl * tree);
  ......
最近在做NetConf相关开发工作,其中很重要的一块是XML解析,项目也需要支持Schema,因此前段时间整理了Schema的两部分标准,只不过整理文档是无法带出来的,所以就在此把Schema相关的内容简单介绍其标准之后,以如何应用的方式记录下来,以供以后使用时参考。在后续的部分,我还将整理NetConf相关标准,作为总结。
一、总体概述
XML Schema的标准分为两部分Part 1: Structure 和Part 2:Data Type. Part 2部分描述了Schema中的数据类型定义、Schema支持的内置数据类型和数据类型相关的Facets;Part 1则描述了一组用于定义xml文档结构的Schema组件、使用组件的语法、组件的校验方法。
Part 2 中对Schema数据类型的定义是一个三元组(Value space、Lexical space、Facets),在这里不对这些名字进行翻译,使用原称为。
Value space就是该数据类型所能取值的集合;
Lexical space是该数据类型的字面表示形式的集合;例如对于Float类型,它可能写作25.2的形式,也可以写作2.52E1,这就是该float值的两种lexical value。
......
XML Schema主要用来设计XML文档的结构,注意不是格式。有人问怎么不是格式?格式跟结构什么区别?我想搞开发的人都对代码进行格式化过,也就是缩进、字体等等;而我们写的程序实际上也是定义一种结构,它不会因为你是否缩进、采用不同的字体就有所改变吧?很多人哪了不分行的xml文档说用VS的工具格式化一下,确又分不清xml格式跟结构有什么区别,让我难以理解。好了,废话少说,接下来说明下如何使用Schema组件定义xml文档的结构。
一、Schema文档的结构
<?xml version="1.0" encode="utf-8"?> -----xml 声明
<xs:schema targetNamespace="myschema" xmlns="myschema" xmlns:xs=http://www.w3.org/2001/XMLSchema>
<xs:simpleType name="ST1">
<xs:restriction base="xs:int">
<xs:minExclusive value="10"/>
  ......
/*
* 主要作用;
* 从xml读取游戏配置信息或保存
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Forms;
using System.IO;
using System.Xml;
using System.Reflection;
namespace Game
{
class Config
{
Keys up;
Keys down;
Keys left;
Keys right;
int time;
public int Time
{
get { return time; }
set { time = value; }
}
public Keys Up
{
get { return up; }
set { up = value; }
}
public Keys Down
{
get { return down; }
set { down = value; }
}
public Keys Left
{
get { return left; }
set { left = value; }
}
public Keys Right
{
get { return right; }
set { right = value; }
}
//读取游戏配置信息
......
把xml拖到IE里就找到错在哪里了
如下:
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
文档的顶层无效。处理资源 'file:///D:/Tomcat 5.5/webapps/myapp/WEB-INF/web.xml' 时出错。第 1 行,位置: 44
<?xml version="1.0" encoding="ISO-8859-1"?>;
-------------------------------------------^
......