Tag: xmldocument

在大型xml文件C#中使用XMLreader和xpath

所以我有这个相当大的XML文件,我需要解析,我不想将整个文件加载到内存中。 XML看起来像这样: 我想要做的是遍历每个名​​为node的节点,看看该属性是否与我的search-critera相匹配。 我想用xpath做到这一点。 我在c#中找到了Parse xml:将xmlreader和linq结合到xml中 ,这有助于我隔离有问题的节点。 但我不能在父节点上使用xpath。 我想我必须创建一个xmldocument并加载读者,但我不能按照我想要的方式工作。

C#:使用XmlDocument解析XML时的行信息

使用XmlDocument解析XML文件有什么选择,并且稍后仍保留错误消息的行信息? (顺便说一句,XML反序列化是否可以做同样的事情?) 选项似乎包括: 扩展DOM并使用IXmlLineInfo 使用XPathDocument

如何在app.config中以编程方式修改assemblyBinding?

我试图通过使用XmlDocument类并直接修改值来在安装时更改bindingRedirect元素。 这是我的app.config看起来像: … … 然后我尝试使用以下代码将1.0更改为2.0 private void SetRuntimeBinding(string path, string value) { XmlDocument xml = new XmlDocument(); xml.Load(Path.Combine(path, “MyApp.exe.config”)); XmlNode root = xml.DocumentElement; if (root == null) { return; } XmlNode node = root.SelectSingleNode(“/configuration/runtime/assemblyBinding/dependentAssembly/bindingRedirect/@newVersion”); if (node == null) { throw (new Exception(“not found”)); } node.Value = value; xml.Save(Path.Combine(path, “MyApp.exe.config”)); } 但是,它会引发“未找到”的exception。 如果我将路径备份到/ configuration / runtime它就可以了。 […]

为什么SelectSingleNode返回null?

我正在使用包含类似于此的结构的XML文档: . . . 我正在以这种方式将文件从文件加载到XML文档中: XmlDocument xdoc = new XmlDocument(); xdoc.Load(“somefile.xml”); //Successfully loads btw 但是,当我尝试运行下一行代码时,我遇到了一个问题,只有这个特定的文档: xdoc.SelectSingleNode(“//event[@id=’1′]”); //This returns a null 我是否在正确的轨道上猜测这是因为使用名为’id’的属性的问题或者我在代码中遗漏了某些东西而返回null?

如何从XmlDocument中删除所有注释标记

我将如何从XmlDocument实例中删除所有注释标记? 有没有比检索XmlNodeList更好的方法并迭代这些? XmlNodeList list = xmlDoc.SelectNodes(“//comment()”); foreach(XmlNode node in list) { node.ParentNode.RemoveChild(node); }

解析格式错误的XML

我正在尝试将一个(可能)格式错误的HTML加载到XMLDocument对象中,但它失败了XMLExceptions …因为有额外的打开/关闭标记,以及格式错误的XML标记,例如而不是 如何使用数据中的所有错误来解析XML? 在解析之前是否可以应用任何XMLvalidation器来纠正这些错误? 或者处理exception解析什么可以解析?

将此XML文档转换为我的对象的最简单方法是什么?

我有一个XMLDocument,我需要读入并转换为一组对象。 我有以下对象 public class Location { public string Name; public List Buildings; } public class Building { public string Name; public List Rooms; } 我有以下XML文件: 18 6 18 6 这样做的最佳方式是什么? 我应该自动将xmldocument序列化到对象还是我需要解析每个元素并手动转换为我的对象? 特别是,我试图弄清楚如何转换集合(位置,建筑物等)。 将此XML文件转换为基本的最佳建议是什么? List 对象?

XmlDocument.Load失败,LoadXml工作:

在回答这个问题时 ,我遇到了一个我不理解的情况。 OP正在尝试从以下位置加载XML: http : //www.google.com/ig/api?weather = 12414&hl = 明显的解决方案是: string m_strFilePath = “http://www.google.com/ig/api?weather=12414&hl=it”; XmlDocument myXmlDocument = new XmlDocument(); myXmlDocument.Load(m_strFilePath); //Load NOT LoadXml 然而,这失败了 XmlException:给定编码中的字符无效。 第1行,第499位。 它似乎在Umidità上窒息。 OTOH,以下工作正常: var m_strFilePath = “http://www.google.com/ig/api?weather=12414&hl=it”; string xmlStr; using(var wc = new WebClient()) { xmlStr = wc.DownloadString(m_strFilePath); } var xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlStr); 我为此感到困惑。 任何人都可以解释为什么前者失败,但后者工作正常吗? 值得注意的是,文档的xml声明省略了编码。

C#hex值0x12,是无效字符

我正在加载大量的xml文档,其中一些返回错误,如“hex值0x12,是一个无效字符”,并且有不同的字符。 如何删除它们?

无法获取XmlDocument.SelectNodes来检索我的任何节点?

我正在尝试解析XML文档。 有问题的文档是AppxManifest文件。 示例文档如下所示: jhjj bhhjb Assets\StoreLogo.png 6.2.1 6.2.1 Text 我尝试像这样解析它: var xml=new XmlDocument(); xml.Load(myfile); var mgr=new XmlNamespaceManager(xml.NameTable); mgr.AddNamespace(“”, “http://schemas.microsoft.com/appx/2010/manifest”); var nodes=xml.SelectNodes(“Applications”); 但是,执行此操作后, nodes将永远不会包含任何内容。 虽然加载了xml文档。 使用SelectNodes(“//*”)按预期返回每个节点。 我的问题在这里是什么? 我也尝试过很多关于XPath查询的变体,例如 /Package/Applications/Application Applications/Application Applications/* 但是,似乎没有任何东西可以检索单个节点。 理想情况下,我希望节点包含所有Application节点