易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

HTML,XML,UML 简介

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

XML不区分大小写查询

按照名为"mydomain1.com"的 DomainName
属性对以下 XML 数据执行不区分大小写的搜索
<?xml version="1.0" ?>
<Domains>
<DomainName>Mydomain1.COM</DomainName>
</Domains>
MSXML 3.0 中 translate
的语法如下:
oXML.setProperty "SelectionLanguage&q ......

C# xml解析

已知有一个XML文件(bookstore.xml)如下:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price& ......

自动检索XML数据

1.books.html
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title ......

Dom4j为XML文件要结点添加xmlns属性

问题:
根据google规定,在给自动给网站生成sitemap.xml的时候, 给根结点加如下属性时,遇到了麻烦
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
用很多方法,像addAttribute, addNamespce都不行
解决方法:
Document document = DocumentHelper.createDocument();
Element root = document.addEl ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号