jjzjj

xmlreader

全部标签

c# - xml,xmlreader使用c#只读特定部分

我正在使用C#从XML文件中获取参数。我的问题是我只想读取当前程序参数。(v1.0,v1.1,v1.2...)2000210650002500400130000using(XmlReaderreader=XmlReader.Create("testXml.xml")){while(reader.Read()){if(reader.IsStartElement()){if(reader["Version"]==actualVersion){//??}}}} 最佳答案 XDocumentdoc=XDocument.Load("testX

c# - ReadOuterXml 正在读取大型 (1 GB) XML 文件的一部分时抛出 OutOfMemoryException

我正在处理一个大型XML文件,在运行应用程序时,XmlTextReader.ReadOuterXml()方法抛出内存异常。代码行就像,XmlTextReaderxr=null;try{xr=newXmlTextReader(fileName);while(xr.Read()&&success){if(xr.NodeType!=XmlNodeType.Element)continue;switch(xr.Name){case"A":varxml=xr.ReadOuterXml();varn=GetDetails(xml);break;}}}catch(Exceptionex){//Dos

.net - 反序列化 XML 文件中的注释

我正在尝试反序列化以下示例XML文件。我已经为此XML文件创建了架构。在架构的帮助下,我能够将XML反序列化为对象。但我的问题是我的XML文件上有一个XML注释(例如:)。反序列化器没有将注释从XML读取到我使用模式创建的对象。我还注意到在评论节点的模式中没有可用的条目。如何从XML文件读取注释到对象? 最佳答案 对象序列化的要点是保存对象的状态,并在以后恢复它。对象字段映射到XML元素和属性,反之亦然。XMLSerializer不会将任何内容映射到注释,反之亦然,因此您无法将注释反序列化到对象中的任何内容。但是,如果您使用传递给D

c# - Xml解析器 : XSLT compiler error

我在使用XmlResolver类时遇到了问题。我有一些XSLT文件保存在MSSQL数据库的xml数据类型列中。我正在尝试编写一个XmlResolver类实现,它将从数据库而不是文件中加载文本。但是我遇到了XSLT编译器错误。这是一个非常简单的例子(输入和xslt的文本都在这里硬编码):staticvoidMain(string[]args){stringxslt=@"";XDocumenttransformationInput=XDocument.Parse("");myResolvres=newmyResolv();XslCompiledTransformtransform=newX

xml - XmlReader 的 ReadString 方法删除/忽略 CDATA 标记

我遇到了一个非常奇怪的行为,无法确定问题所在。在下面的代码片段中,预期是/>]]>但是我得到了/>为什么输出中缺少CDATA标签?我只是使用XmlReader.ReadString()并且它忽略了CDATA标记。stringxml=""+""+"/>]]>"+"";Encodingencoding=newUTF8Encoding();byte[]buffer=encoding.GetBytes(xml);MemoryStreamstream=newMemoryStream(buffer);XmlReaderSettingssettings=newXmlReaderSettings();

c# - XmlReader 不考虑文档类型符号

第一次在这些论坛上写文章。虽然已经阅读了很长时间。我在尝试使用.Net中的XmlReader验证Xml文件时遇到问题。XML文件:]>Xsd文件:C#片段:XmlReaderSettingssettings=newXmlReaderSettings();settings.ValidationEventHandler+=settings_ValidationEventHandler;settings.ValidationType=ValidationType.Schema;settings.DtdProcessing=DtdProcessing.Parse;settings.Valida

c# - 使用 XMLReader 在 c# 中为多个相似节点解析 XML

我收到了SOAP服务的回复。它看起来像:2015-01-05T08:58:172015-02-01T00:00:001100AutoCCPaymentLee2015-01-01T08:58:172015-01-01T00:00:00-110110RentPostedLee我定义了这样一个模型:publicclasspayment_history{publicDateTimetTRANSDATE{get;set;}publicDateTimetPAIDTO{get;set;}publicdoubledAMOUNT{get;set;}publicdoubledBALANCE{get;set

c# - 防止 XmlReader 扩展 XML 实体

有没有办法阻止.NET的XmlReader类在读取内容时将XML实体扩展到它们的值中?例如,假设使用以下XML作为输入:á让我们假设不可能达到扩展急性实体所需的外部OASISDTD。我希望读者按顺序阅读author元素,然后是EntityReference类型的aacute节点,最后是author结束元素,而不会引发任何错误。我怎样才能做到这一点?更新:我还想防止扩展字符实体,例如á。 最佳答案 一种方法是使用“XmlTextReader”,如下所示:using(varreader=newXmlTextReader(@

c# - (C#) 如何在不加载或重写整个文件的情况下修改现有 XML 文件中的属性值?

我在XmlWriter和Linq2Xml的帮助下制作了一些巨大的XML文件(几GB)。此文件的类型:........我不知道Table的recCount和recLength属性的值,直到我写下所有内部Rec节点,所以我必须在最后为这些属性写入值。现在我正在将所有内部Rec节点写入一个临时文件,计算Table的属性值并按照上面显示的方式写入所有内容到结果文件。(从具有所有Rec节点的临时文件中复制所有内容)我想知道是否有一种方法可以修改这些属性的值而无需将内容写入另一个文件(就像我现在这样做)或将整个文档加载到内存中(这显然是不可能的,因为这些文件的大小)?

c# - 使用 XmlReader 加载外部 dtd

我创建了一个名为test1.xml的XML文档,它链接到定义了实体circ的外部dtdmydtd2.dtd。两个文件都保存在同一个文件夹中。但是,当使用XmlReader读取XML文件时,出现错误Referencetoundeclaredentitycirc。printthischaracterˆXmlReaderSettingssettings=newXmlReaderSettings();settings.DtdProcessing=DtdProcessing.Parse;settings.CheckCharacters=false;XmlDocumentdoc=newX