jjzjj

xmlreader

全部标签

c# - .NET 中的异步 XmlReader?

有没有办法异步访问XmlReader?xml是从许多不同的客户端(如XMPP)中通过网络传入的;源源不断的...>标签。我所追求的是能够使用类似BeginRead/EndRead的界面。我设法想出的最佳解决方案是在底层网络流上对0字节进行异步读取,然后当一些数据到达时,调用XmlReader上的Read-然而这将阻塞直到节点的所有数据变得可用。该解决方案大致如下所示privateStreamsyncstream;privateNetworkStreamns;privateXmlReaderreader;//thiscoderunsfirstpublicvoidInit(){syncst

xml - 我如何在 PowerShell 中使用 XmlReader 来传输大/巨大的 XML 文件?

我有几千兆字节的XML。XML中没有空格。所以我写了一些C#代码来分割成单个文件(它有一些额外的代码来执行一些事情,例如在测试时随机化)using(XmlReaderMyReader=XmlReader.Create(@"d:\xml\test.xml")){while(MyReader.Read()){switch(MyReader.NodeType){caseXmlNodeType.Element:if(MyReader.Name=="Customer"){XElementel=XElement.ReadFrom(MyReader)asXElement;if(el!=null){c

c# - 从流中读取 XML

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

.net - 防止 XmlTextReader 扩展实体

我试图在不扩展实体的情况下读取XML文档,对其进行一些操作,然后像最初一样使用未扩展的实体重新保存它。当直接使用XDocument时,它加载失败,抛出异常告诉我它有未展开的实体:XDocumentdoc=XDocument.Load(file);//Exception:Referencetoundeclaredentity'entityname'.然后我尝试将XmlTextReader传递给XDocument构造函数,但是EntityHandling属性没有“不展开”:XmlTextReaderxmlReader=newXmlTextReader(file));xmlReader.En

c# - 系统.Xml.XmlException : Unexpected end of file while parsing Name has occurred

我正在使用通过SqlCommand.ExecuteXmlReader检索的XmlReader。Hereismyinput当我运行这行代码时:XDocumentcurrentXDoc=XDocument.Load(ktXmlReader.ReadSubtree());它第一次工作,按预期读取第一个Product节点。第二次运行时,出现以下异常:System.Xml.XmlException:Message:UnexpectedendoffilewhileparsingNamehasoccurred.Line1,position2048.Stacktrace:atSystem.Xml.Xm

c# - 如何在 C# 中使用 XMLREADER 从 XML 字符串中读取特定元素

我有XML字符串:我是C#新手。我试图读取这两个元素的FieldRef元素的Name属性,但我不能。我使用了XMLElement,有没有办法选择这两个值? 最佳答案 尽管发布了无效的XML(无根节点),但遍历元素的一种简单方法是使用XmlReader.ReadToFollowing方法://KeepreadinguntiltherearenomoreFieldRefelementswhile(reader.ReadToFollowing("FieldRef")){//ExtractthevalueoftheNameattribute

c# - 并发 XmlReader 和 XmlWriter

我有一个系统,它创建一些XmlReader和XmlWriter实例,并将它们传递给客户端,以便客户端可以写入和读取XML。有时,多个线程访问系统:线程1获取一个XmlWriter实例并开始写入线程2获取表示相同XML文档的XmlReader实例,并开始读取。很明显,有时读者在作者完成写作之前就开始阅读,这会导致读者抛出异常:System.Xml.XmlException:Rootelementismissing.这并不奇怪,但是有什么方法可以使这个系统线程安全吗?是否有可能让读者在作者写作的同时阅读?我尝试使用MemoryStream作为底层数据存储,但这似乎不起作用。是否可以让读者等

c# - XmlReader - 我需要编辑一个元素并生成一个新元素

我正在覆盖一个传入了XmlReader的方法,我需要找到一个特定的元素,添加一个属性,然后创建一个新的XmlReader或只用修改后的内容替换现有的。我正在使用C#4.0我研究过使用XElement(Linq),但我似乎无法操作现有元素并添加属性和值。我知道XmlWriter有WriteAttributeString这会很棒,但我还是不确定它们是如何组合在一起的我希望能够做一些像---这是伪代码!publicXmlReaderDoSomethingWonderful(XmlReaderreader){Elementelement=reader.GetElement("Test");el

c# - 如何在不向前移动的情况下从 XmlReader 读取?

我得到了这个场景:while(reader.Read()){if(reader.NodeType==XmlNodeType.Element&&reader.Name==itemElementName){XElementitem=null;try{item=XElement.ReadFrom(reader)asXElement;}catch(XmlExceptionex){//loglinenumberandstufffromXmlExceptionclass}}}在上面的循环中,我将某个节点(itemElementName)转换为XElement。一些节点将是良好的XML并将进入XEl

c# - 如何使用 XmlReader 从 XML 中的特定子元素获取值?

这是XML字符串。Question1?abcdefg123Question2?12345678123那么如何通过给定的问题ID获取元素的值呢?比如说,如果我给idvalue="dd7e3bce-57ee-497a-afe8-e3d8d25e2671",我希望返回字符串值abcdefg作为结果。varxmlstr="contentfromabovexmlexample";using(varreader=XmlReader.Create(newStringReader(xmlstr))){while(reader.Read()){if(reader.IsStartElement()){va