jjzjj

c# - 在 C# 中,为什么我不能将 StringReader 传递给带有 Stream 参数的方法?

在.net4和C#中。我已经实现了一个静态方法来将XML流反序列化为一个对象。这只是进入一个对象的一种xml格式,所以我不想用它做任何花哨的事情。由于我可以通过多种方式获取此XML内容,我想我应该将传递给静态方法的参数设为Stream对象。我原以为它会接受从基类Stream派生的任何对象——例如FileStream、MemoryStream、StringReader等。当我向它传递一个FileStream对象时,它工作正常,但当我向它传递一个StringReader时,它工作正常。我的静态方法:publicstaticMatchObjDeserializeMatch(StreamsrX

Java - XML 解析器性能 : Sun Java Streaming XML Parser (SJSXP) vs Woodstox

我正在寻找最新的、内存高效和高性能的JavaXML解析API。我需要解析3MB到5MB的XML文件。我对此进行了谷歌搜索,了解到SunJavaStreamingXMLParser(SJSXP)和Woodstox比DOM和SAX快得多。两者都使用StAXAPI。*这些技术不支持模式验证。AaltoXML处理器也实现了StAXAPI。我还没有找到关于这些技术性能的具体发现。哪一个在内存效率、高性能和易用性方面最好? 最佳答案 这里还有一些可能相关的链接:数据绑定(bind)的Stax实现:http://technotes.blogs.s

java - 为什么 SAXParser 在抛出事件之前读取这么多?

场景:我通过极慢的网络接收到一个巨大的xml文件,所以我希望尽早开始过多的处理。因此,我决定使用SAXParser。我预计在标记完成后我会收到一个事件。下面的测试说明了我的意思:@Testpublicvoidsax_parser_read_much_things_before_returning_events()throwsException{Stringxml=""+".."+".."//muchmore...+"";//wrappertoshowwhatisreadInputStreamis=newInputStream(){InputStreamis=newByteArrayIn

java - 将 Java w3c 文档转换为 XMLStreamReader

我想在我们的代码库中重用一些现有代码,这些代码接受XMLStreamReader我的应用程序具有所需的数据作为w3c文档。下面的例子是一个最小的测试用例:publicstaticvoidmain(String[]args)throwsException{DocumentBuilderFactorybuilderFactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=builderFactory.newDocumentBuilder();Documentdoc=builder.newDocument();El

java - 使用 StAX 对 XML 文档进行小的修改

我目前正在尝试读取XML文件,进行一些小的更改(更改某些属性的值),然后再将其写回。我打算使用StAX解析器(javax.xml.stream.XMLStreamReader)读取每个事件,看看它是否是我想要更改的,然后将其直接传递给StAX编写器(javax.xml.stream.XMLStreamReader)如果不需要更改。不幸的是,这看起来并不那么简单-编写器无法获取事件类型和解析器对象,只能使用writeAttribute和writeStartElement等方法.显然,我可以为XML文档中可能出现的每种可能类型的元素编写一个带有case的大型switch语句,然后再将其写回

c# - 如何使用 System.IO.Stream 和 LINQ 读取 XML 文件

我将像这样传递xml文件:File1.PostedFile.InputStream//readingxmlfile.....publicstaticvoidreadXMLOutput(Streamstream){System.Xml.Linq.XDocumentxml=System.Xml.Linq.XDocument.Load(stream);varquery=frompinxml.Element("ste").Element("Application")//where(int)p.Element("Id")==1selectPage;foreach(varrecordinquery

xml - Haskell解析低内存的大xml文件

因此,我使用了几个HaskellXML库,包括hexpat和xml-enumerator。在阅读了RealWorldHaskell(http://book.realworldhaskell.org/read/io.html)中的IO章节后,我的印象是,如果我运行以下代码,它将在我执行它时被垃圾收集。但是,当我在一个大文件上运行它时,内存使用率在运行时不断攀升。runghcparse.hsbigfile.xml我做错了什么?我的假设错了吗?映射/过滤器是否强制它评估所有内容?importqualifiedData.ByteString.LazyasBSLimportqualifiedDa

c# - 在 C# 中使用 (IDisposable obj = new ...) 在流中写入代码块(例如 XML)

我已经开始使用实现IDisposable的类通过using语句在流中写入block。这有助于保持正确的嵌套并避免丢失或错误放置开始/结束部分。基本上,构造函数写入block的开始(例如打开XML标记),Dispose()结束(例如关闭XML标记)。示例是下面的UsableXmlElement(它用于大型XML,因此LINQtoXML或内存中的XmlDocument不是选项)。但是,这些IDisposable没有实现Microsoft推荐的复杂模式,具有Destructor/Finalizer、单独的Dispose(bool)方法和GC.SuppressFinalize()。Dispos

.net - XML 序列化,无空格

我有以下序列化方法:PrivateFunctionSerializeData(ByValdataAscData)AsStringIfdataIsNotNothingThenDimxml_streamAsNewMemoryStream()DimsrAsStreamReaderDimxsAsNewXmlSerializer(GetType(cData))xml_stream=NewMemoryStream()Tryxs.Serialize(xml_stream,data)xml_stream.Position=0sr=NewStreamReader(xml_stream)Returnsr.

c# - 从流中读取 XML

我正在使用ASP.NET,并且正在从表单中导入XML文件。现在我将其转换为Stream:StreaminputStream=XmlFileUploadControl.PostedFile.InputStream;因为我以后可能需要这个版本。我想首先检查以确保XML文件的格式正确,如果正确,则显示一些信息:if(CorrectFileFormat(inputStream)){DisplayLicenseInfo(inputStream);}else{StatusLabel.Text="SelectedfileisnotaLicensingDiagXMLfile";}CorrectFile