草庐IT

c# - 处理超过 2 GB 的字符串

我有一个应用程序,其中包含用户输入的大量数据的XLS文件被打开,其中的数据被转换为XML。我已经将XLS文件中的列映射到XML映射。当我尝试在XMLMaps中使用ExportXml方法时,我得到一个包含XLS文件的正确XML表示的字符串。我稍微解析了这个字符串并将其上传到我的服务器。问题是,当我的XLS文件非常大时,为XML生成的字符串超过2GB,我得到了内存不足异常。我知道CLR对象的限制是2GB。但就我而言,我需要处理这种情况。目前我只是要求用户发送更少的数据。关于如何做到这一点有什么想法吗?编辑:这只是我需要对生成的XML执行的操作的一部分。删除服务器数据不需要的某些字段。为每行

python - 在 python 中解析一个大的 (~40GB) XML 文本文件

我有一个XML文件,我想用python解析它。最好的方法是什么?将整个文档记入内存将是灾难性的,我需要以某种方式一次读取一个节点。我所知道的现有XML解决方案:元素树迷你xml但由于我提到的问题,我担心它们无法正常工作。我也无法在文本编辑器中打开它-generao中关于处理巨型文本文件的任何好的提示? 最佳答案 首先,您是否尝试过ElementTree(内置的纯Python或C版本,或者更好的是lxml版本)?我很确定他们都没有真正将整个文件读入内存。当然,问题在于,无论是否将整个文件读入内存,生成的解析树最终都会在内存中。Elem

java - 在 30GB XML 数据集上搜索正则表达式模式。使用16GB内存

我目前有一个JavaSAX解析器,它正在从一个30GB的XML文件中提取一些信息。目前是:读取每个XML节点将其存储到一个字符串对象中,在字符串上运行一些正则表达式将结果存入数据库对于数百万个元素。我在具有16GB内存的计算机上运行它,但内存没有得到充分利用。有没有一种简单的方法可以从输入文件中动态“缓冲”大约10gb的数据?我怀疑我可以手动采用“生产者”“消费者”多线程版本(在一侧加载对象,使用它们并在另一侧丢弃),但是该死的,XML现在很古老,没有有效的库吗紧缩他们? 最佳答案 简单说一下,Java可以使用您的16GB内存吗?您

ruby-on-rails - 使用 Ruby on Rails (1.4GB) 解析非常大的 XML 文件——有没有比 SAXParser 更好的方法?

目前,我正在使用LIBXML::SAXParser::Callbacks来解析包含140,000个产品数据的大型XML文件。我正在使用一项任务将这些产品的数据导入我的Rails应用程序。我最后一次导入只用了不到10个小时就完成了:rakeasi:import_products--trace26815.23suser1393.03ssystem80%cpu9:47:34.09total当前实现的问题在于XML中的复杂依赖结构意味着我需要跟踪整个产品节点以了解如何正确解析它。理想情况下,我想要一种可以单独处理每个产品节点并能够使用XPATH的方法,文件大小限制我们使用需要将整个XML文件加

xml - 在 +1 GB 的大型单行文本文件中使用 sed 在每个 > 之后引入换行符

我有一个巨大的文本文件(大约1.5GB),其中包含xml数据。文件中的所有文本都在一行中,并试图在任何文本编辑器中打开它(即使是在这个线程中提到的那些:Texteditortoopenbig(giant,huge,large)textfiles)由于文本编辑器在尝试滚动时挂起而失败或完全无法使用.我希望通过使用以下sed命令在文件中引入换行符sed's/>/>\n/g'data.xml>data_with_newlines.xml遗憾的是,这导致sed给我一个段错误。据我了解,sed逐行读取文件,在这种情况下,这意味着它试图在一行中读取整个1,5gig文件,这肯定会解释段错误。但是,问

c# - 如何添加xml :lang ="en" to <html> tag

我有一个用于以下xml的XElement对象。Helloworld我想添加xml:lang="en"到标签。于是就变成了我尝试了以下代码。XAttributexmlLang=newXAttribute("xml:lang","en");但是我得到了以下错误:':'字符,十六进制值0x3A,不能包含在名称中。感谢您的帮助。 最佳答案 您需要传递一个XName由命名空间(http://www.w3.org/1999/xhtml)和XAttribute构造函数的本地名称(lang)组成的实例。XAttributexmlLang=newXA

xml - 对于大于 15 GB 的文件,您会选择哪种 Perl XML 解析器?

我知道有一些非常好的PerlXML解析器,比如XML::Xerces,XML::Parser::Expat,XML::Simple,XML::RapidXML,XML::LibXML,XML::Liberal等您会选择哪种XML解析器来解析大文件,您会根据什么参数决定其中一个?如果您要选择的那个不在列表中,请提出建议。 最佳答案 如果您正在解析那种大小的文件,您将希望避免任何试图将整个文档加载到内存中并构建DOM(域对象模型)的解析器。相反,寻找SAX样式解析器-将输入文件视为流的解析器,在遇到事件和属性时引发事件。这种方法允许您逐

java - 使用 Stax Parser 将大于 10GB 的巨大 xml 文件拆分成小块

我们有一个场景,我们需要将大小超过10GB的大型xml文件分成小块。每个block应包含100或200个元素。示例xml29PankajMaleJavaDeveloper35LisaFemaleCEO40TomMaleManager25MeghnaFemaleManager29PankajMaleJavaDeveloper35LisaFemaleCEO40TomMaleManager我有Stax解析器代码,它将文件分成小块。但是每个文件只包含一个完整的Employee元素,我需要100或200或更多单个文件中的元素。这是我的java代码publicstaticvoidmain(Stri

c# - 每天将大量 XML 数据(> 1Gb)导入 SQL Server 2008

我遇到了一个问题,我需要每天将一个巨大的XML(>1Gb)导入到SQLServer2008中。我现在拥有的是一个示例XML文件及其XML模式。XML模式非常复杂,其中包含许多自定义定义的简单类型和复杂类型的元素,例如:导入后,将实现一个WCF服务来检索存储在SQLServer中的数据,如搜索、检索等(只读操作)。我能想到的实现步骤是这样的:根据提供的XSD(手动)定义对象模型,对象模型将用于WCF服务返回值。根据提供的XSD(手动)定义数据库模式,该模式估计有大约20-30个表。创建一个SSIS包,每天将XML加载到数据库中。创建一个WCF服务,该服务从数据库中读取数据,将数据填充到第

windows - IMAPI2 可以刻录大于 4Gb 的文件吗?

IMAPI2接口(interface)IFileSystem使用COMIStream接口(interface)来表示文件数据。AddTree方法将指定的目录内容添加到IFileSystem。所以AddTree必须在这个过程中创建IStream。我想知道它使用什么IStream实现?如果它使用标准的OLE实现,我们就会遇到一个棘手的问题,因为OLE流不支持大于4Gb的文件。任何人都可以阐明这个问题吗? 最佳答案 IMAPIv2将ISO9660兼容光盘上的文件大小限制为2GB。要刻录超过2GB的文件,您必须设置UDF文件系统。HRESU