Tag: xmlreader

无效的URI:Uri字符串太长

我正在尝试获取模式并validation我的xml。 XmlReaderSetting settings = new System.Xml.XmlReaderSettings(); settings.Schemas.Add(null, “http://example.com/myschema.xsd”); settings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(settings_ValidationEventHandler); settings.ValidationType = ValidationType.Schema; settings.IgnoreWhitespace = false; XmlReader reader = XmlReader.Create(xml, settings); 我明白了 Invalid URI: The Uri string is too long System.UriFormatException was unhandled Message=Invalid URI: The Uri string is too long. Source=System StackTrace: at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) at System.Uri..ctor(String uriString, […]

替换Xml节点/元素的innertext

首先,这是C#。 我正在为NHS中的一小组同事创建一个互联网仪表板。 下面是一个示例xml文件,我需要更改其中的innertext。 我需要替换特定元素,例如“Workshop1”。 因为我们有一些研讨会,所以我不能使用通用编写器,因为它将使用下面的一段代码替换XML文档中的所有信息。 hello www.google.co.uk 我正在使用一个开关盒来选择一个特定的工作室,您可以在其中更改名称并添加研讨会的URL,使用下面的代码将替换整个文档。 public void XMLW() { XmlTextReader reader = new XmlTextReader(“C:\\myXmFile.xml”); XmlDocument doc = new XmlDocument(); switch (comboBox1.Text) { case “button1”: doc.Load(reader); //Assuming reader is your XmlReader doc.SelectSingleNode(“buttons/workshop1″).InnerText = textBox1.Text; reader.Close(); doc.Save(@”C:\myXmFile.xml”); break; } } 所以只是为了澄清我希望我的C#程序搜索XML文档找到元素“Workshop1”并用文本框中的文本替换innertext。 并且能够保存它而无需用一个节点替换整个文档。 谢谢你的期待。

使用XmlReader读取属性值

我有一个XML文件,我想从这里读取,并具有以下代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.IO; namespace XML { class Program { static void Main(string[] args) { XmlTextReader textReader = new XmlTextReader(“secLendingXML.cfm.xml”); while (textReader.Read()) { switch (textReader.NodeType) { case XmlNodeType.Element: Console.WriteLine(textReader.Name); Console.WriteLine(textReader.Value); break; case XmlNodeType.Text: Console.WriteLine(textReader.Value); break; case XmlNodeType.XmlDeclaration: case XmlNodeType.ProcessingInstruction: Console.WriteLine(textReader.Name + ” ” + textReader.Value); break; […]

如何从XmlReader创建XML文件?

如何从System.Xml.XmlReader编写XML文件? 我认为这将是一个简单的问题,但每当我搜索时,我似乎最终都会将文件读取到读取器或逐个节点地编写。 XmlReader对象传达存储在数据库中的xml,只需要从数据库中传出一个文件即可。 有没有简单的方法来做到这一点? SqlCommand dataCmd = new SqlCommand(sqlText, Conn); System.Xml.XmlReader dataReader = null; dataCmd.CommandTimeout = 60000; Conn.Open(); dataReader = dataCmd.ExecuteXmlReader(); dataReader.Read();

为什么我的新XmlTextReader(流)以兆字节为单位读入内存而不是正确流式传输?

当我将XML中的STREAMING转换为XmlReader时,我得到了Out of Memory Exceptions! 查看内存分析器,我们可以看到它一遍又一遍地调用StringBuilder.Append,导致大量128KB缓冲区填充所有内存。 这与“流媒体”相反。 它不应该加载多个4KB缓冲区。

XmlReader在UTF-8 BOM上中断

我的应用程序中有以下XML解析代码: public static XElement Parse(string xml, string xsdFilename) { var readerSettings = new XmlReaderSettings { ValidationType = ValidationType.Schema, Schemas = new XmlSchemaSet() }; readerSettings.Schemas.Add(null, xsdFilename); readerSettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema; readerSettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation; readerSettings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings; readerSettings.ValidationEventHandler += (o, e) => { throw new Exception(“The provided XML does not validate against the request’s schema.”); }; var readerContext […]

System.Xml.XmlReader(C#和.Net)中的当前行号

有谁知道我如何获得System.Xml.XmlReader的当前行号? 我试图在文件中记录我找到Xml元素的位置。

XmlReader – 读取没有换行符的xml文件的问题

当我使用XmlReader解析XML文件时,我会得到不同的结果,具体取决于XML文件是否格式正确(即使用换行符)。 这是我正在使用的代码: XmlReader reader = new XmlTextReader(xmlfile); reader.MoveToContent(); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: if (reader.Name == “entry”) { Console.WriteLine(reader.ReadElementContentAsString()); } break; } } 我一直在使用的XML内容是: 5AVERAGE:host:ed402b4d-71e7-4a8d-be29-ab6e54e955c8:memory_total_kibAVERAGE:host:ed402b4d-71e7-4a8d-be29-ab6e54e955c8:memory_free_kibAVERAGE:host:ed402b4d-71e7-4a8d-be29-ab6e54e955c8:xapi_memory_usage_kibAVERAGE:host:ed402b4d-71e7-4a8d-be29-ab6e54e955c8:xapi_free_memory_kibAVERAGE:host:ed402b4d-71e7-4a8d-be29-ab6e54e955c8:xapi_live_memory_kib 代码打印出来只有3行,当它真的应该打印5.我想我错过了一些东西,但是对我来说没有意义的是,相同的代码会在同一个XML文件上产生不同的结果有白色空间。