jjzjj

xmlreader

全部标签

.net - XPathNavigator 和 XmlReader 之间的速度差异到底有多大?

我有一个相当大的XML文件,我需要将其解析为.NET类结构(以映射到固定长度的记录格式并通过MQ传输)。性能很重要,但不是绝对关键。我几乎总是使用XPathNavigator来读取XML文件,因为它比XmlReader容易得多。另一方面,我知道XmlReader比XPathNavigator快,因为理论上它一次只读取一个节点,而XPathNavigator必须读取足够的内容执行XPath,可能是整个文档。我的问题是:它到底快了多少?读取几千个节点时会有明显的不同吗?我几乎必须切换到XmlReader的转折点是什么?还是XPathNavigator优化到始终是一个不错的选择?我的大部分X

c# - 使用 XmlReader 类解析具有相同名称元素的 XML

我正在重写一些使用XmlDocument来解析一些XML的代码。我想改用XmlReader来查看是否可以获得一些性能改进。XML的结构如下所示:基本上,我需要遍历所有元素。就像我说的,旧代码是这样工作的:XmlDocumentdocument=newXmlDocument();//loadXMLintoXmlDocumentdocument.LoadXml(xml);//usexpathtosplitintoindividualitemstringxPath=@"items/item";XmlNodeListnodeList=document.SelectNodes(xPath);//

c# - 如何在 C# 中读取 XML 属性?

我有几个要从中读取属性的XML文件。我的主要目标是将语法突出显示应用于富文本框。例如,在我的一个XML文档中,我有:[..]所有文件都具有相同的元素:Keyword.那么,我怎样才能得到属性值name并将它们放入每个XML文件的字符串集合中。我正在使用VisualC#2008。 最佳答案 其他答案将完成这项工作-但语法突出显示和几个xml文件你说你有让我认为你需要更快的东西,为什么不使用精简的XmlReader?privatestring[]getNames(stringfileName){XmlReaderxmlReader=Xm

c# - 在 ASP.NET 中执行 XSLT 转换的最简化方法是什么?

换句话说,有没有一种更快、更简洁的方式来编写下面的代码://CreateanobjectforperformingXSTLtransformationsXslCompiledTransformxslt=newXslCompiledTransform();xslt.Load(HttpContext.Current.Server.MapPath("/xslt/"+xsltfile.Value),newXsltSettings(true,false),newXmlUrlResolver());//CreateaXmlReaderobjecttoreadtheXMLwewanttoformat

.net - 以编程方式以缩进形式格式化 XML,就像 Visual Studio 的自动格式化一样

我还没有找到使用.NET的XmlWriter和关联的XmlWriterSettings以缩进形式格式化XML字符串的方法,这与VisualStudio使用其自动格式化命令(Ctrl-ECtrl-D,或者,取决于在键盘映射上,Ctrl-KCtrl-D)。我想这样做是因为我习惯性地在VS中自动格式化我的所有文件,包括代码和.config文件。我有一个更新.config文件的安装程序应用程序,我希望看到实际的差异,而不是更改整个文档。我还没有研究自动格式的所有不同格式设置选项,但我喜欢每个XML属性都在单独的一行上,第一个与开始标记在同一行,随后的与第一个对齐,像这样:我已经尝试使用XmlW

c# - XmlReader - 读取没有换行符的 xml 文件时出现问题

当我使用XmlReader解析XML文件时,根据XML文件格式是否正确(即使用换行符),我会得到不同的结果。这是我正在使用的代码:XmlReaderreader=newXmlTextReader(xmlfile);reader.MoveToContent();while(reader.Read()){switch(reader.NodeType){caseXmlNodeType.Element:if(reader.Name=="entry"){Console.WriteLine(reader.ReadElementContentAsString());}break;}}我一直使用的XM

c# - 如何停止 XMLReader 抛出无效的 XML 字符异常

所以我有一些XML:mytagmytagvalue andmyinvalidCharacter和一个XMLReader:using(XmlReaderreader=XmlReader.Create(newStringReader(xml))){while(reader.Read()){//domything}}我已经实现了here中的CleanInvalidCharacters方法但由于“ ”尚未编码,因此不会被删除。错误正在reader.Read()中抛出;异常行:hexadecimalvalue0x0B,isaninvalidcharacter.

xml - 如何在不将其加载到内存和使用 XElement 的情况下读取大型 xml 文件

我想读取一个大的xml文件(100+M)。由于它的大小,我不想使用XElement将它加载到内存中。我正在使用linq-xml查询来解析和读取它。最好的方法是什么?任何关于XPath或XmlReader与linq-xml/XElement组合的例子?请帮忙。谢谢。 最佳答案 是的,您可以将XmlReader与methodXNode.ReadFrom结合使用,请参阅文档中的示例,该示例使用C#选择性地将XmlReader找到的节点作为XElement进行处理。 关于xml-如何在不将其加载

c# - 使用 XmlWriter 附加现有的 XML 文件

我使用以下代码创建了一个XML文件:XmlWriterSettingsxmlWriterSettings=newXmlWriterSettings();xmlWriterSettings.Indent=true;xmlWriterSettings.NewLineOnAttributes=true;using(XmlWriterxmlWriter=XmlWriter.Create("Test.xml",xmlWriterSettings)){xmlWriter.WriteStartDocument();xmlWriter.WriteStartElement("School");xmlWr

c# - 反序列化大型 XML 文档中的单个元素 : xmlSerializer. Deserialize(xmlReader.ReadSubtree()) 由于命名空间问题而失败

我正在尝试一次性处理大型XML文档(使用XmlReader),并使用XmlSerializer仅反序列化其中的某些元素。下面是一些代码和一个小型模拟XML文档,展示了我是如何尝试这样做的。RationaleforusingXmlReader:1.IamdealingwithverylargeXMLdocuments(10–250MB),whichforthisreasonIdonotwanttoloadintomemory.SoXmlDocumentisoutofthequestion.2.Iwanttoextractonlycertainelements.TypicallyIwill