易截截图软件、单文件、免安装、纯绿色、仅160KB

XML文档分割成小块

XML文档分割成小块
 
当你要把XML文档分割成小块时,你要读取输入文档,创建输出文档和转换子文档。不管是在C++还是FOAL中的脚本中,CMarkup都使它变得简单。对于很大的XML文档,在提取子文档是使用CMarkup读取文件模式就可用很少的内存读取它。
关键问题是,当你分割XML文档时你想在那个地方分割?可以是一个合乎逻辑的根目录划分成子文档,也可以简单的按照文件大小来划分,就像把一个ten million大小的对象划分成one million大小的。
下面的C++代码是把一个包含N million个对象的XML文档分割成N个包含1 million个对象的文件。
这是程序的思想:
· 声明两个Cmarkup类的对象,一个是要被分割的输入文档,一个是输出文档
· 在循环读取所有对象时先打开那个巨大的输入文档
· 使用输出文档数形式的文件名打开一个输出文档
· 把输入文档的对象子文档转化成输出文档,直到对象计数达到最大值
· 关闭输出文档,重置对象计数器,输出文档计数器++
· 如果还没有达到输入文档的结尾,像上面得方法那样打开一个新的输出文档
· 达到了输入文档的结尾,跳出循环,关闭输出文档,关闭输入文档
 
// Split XML
CMarkup xmlInput, xmlOutput;
xmlInput.Open( "please_split.xml", MDF_READFILE );
int nObjectCount = 0, nFileCount = 0;
while ( xmlInput.FindElem("//object") )
{
  if ( nObjectCount == 0 )
  {
    ++nFileCount;
    xmlOutput.Open( "piece" + StrfromInt(nFileCount) + ".xml", MDF_WRITEFILE );
    xmlOutput.AddElem( "root" );
    xmlOutput.IntoElem();
  }
  xmlOutput.AddSubDoc( xmlInput.GetSubDoc() );
  ++nObjectCount;
  if ( nObjectCount == 1000000 )
  {
    xmlOutput.Close();
    nObjectCount = 0;
  }
}
if ( nObjectCount )
  xmlOutput.Close();
xmlInput.Close();
 
你也可以使用大小而不是对象的计数来作为分割XML文档的标志。要做到这一点,保持一个文档大小相符的文档(输出文档),直到达到阈值。上面程序的子文档转换发生在这一句xmlOutput.AddSubDoc( xmlInput.GetSubDoc() ).
你可以用两步替代,并跟踪大小:
MCD_STR sObject = xmlInput.GetSubDo


相关文档:

JavaScript 解析读取XML文档


JavaScript解析读取XML文件,主要就是加载并解析XML文件,然后就可以测试解析的XML文件的内容,打印输出来。
编写了一个JavaScript的类来实现读取一个XML文件中的数据,实现代码如下所示:
<mce:script type="text/javascript"><!--

/**
* @author Shirdrn
*/
function XMLDoc(){}; // 定义一个XM ......

XML over TCP

如果要完整的支持XML over TCP,只有两种办法:
1,加一个header去标明数据的长度
2,加一个delimiter去标明数据的结束
这两种方法都不够优雅。我们不需要一个通用的方法,我们只要一个最适合我们的方法。
通常,我们能够自定义数据的格式,而且我们通常一条消息只有一个root node,那么我们可以试试下面的函数:
//re ......

java读取XML文件

1.读取XML文件的类:
public class XMLUtils {

private final String DB_XML_FILE = "/XMLSetting.xml";
public Properties getPropertiesfromXML() {
URL url = XMLUtils.class.getResource(dBXMLFILE);
URI uri;
try {
uri = url.toURI();
InputSource xmlfile = new InputSource(uri.g ......

HTML,XML,UML 简介

HTML,XML,UML 简介
 
HTML (HyperText Mark-up Language)超文本标记语言  是WWW的描述语言。设计HTML语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。HTML文本是由HTML命令组成的 ......

NET面试题 – 组件开发人员 & XML开发人员

C#组件开发人员
什么时候使用override?什么时候使用new? 什么叫shadowing?
重写父类的方法的时候用override以实现多态,当你想屏蔽父类成员的时候使用new,shadowing基本就是new与override区别等一些方面的问题,个人认为弄清override与new就没有必要特意考虑shadowing。
解释virtual、sealed、override和abstract的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号