Tag: linq to xml

保存到xml文档

我正在“ 试图 ”弄清楚如何创建Windows Phone 7应用程序 ,我想用以下函数更新/保存xml文件: XDocument xmlDoc = XDocument.Load(“myApp.xml”); xmlDoc.Element(“ocd”).Add(new XElement(“vDetails”, new XElement(“itemName”, this.tb_Name.Text), new XElement(“Date”, System.DateTime.Now.ToString()), new XElement(“itemValue”, “”))); xmlDoc.Save(“data.xml”); 但是xmlDoc.Save行给出错误:“System.Xml.Linq.XDocument.Save(System.Xml.XmlWriter)”的最佳重载方法匹配具有一些无效参数。 我需要做些什么才能纠正这个问题?

访问c#web应用程序中的内容文件

我现在已经有3天这个问题了。 我有一个标记为Content和Always Copy的xml文件。 该文件已复制到: C:\Users\avi\Documents\Visual Studio 2010\Projects\ExpressBroker\ExpressBroker\bin\XMLMetadata\Actions.1.xml 访问文件时: //like that: XDocument actions = XDocument.Load(“bin\\XMLMetadata\\Actions.1.xml”); //or like that: XDocument actions = XDocument.Load(“XMLMetadata\\Actions.1.xml”); //or like that: XDocument actions = XDocument.Load(“Actions.1.xml”); 我得到以下exception: Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path ‘C:\Program Files\IIS Express\bin\XMLMetadata\Actions.1.xml’. 为什么在IIS文件夹中搜索过? 我如何访问该文件? 我正在使用IIs Express和VWD2010

如何获得一个具有以下名称的元素?

我需要从这个XML获取CountryName: http ://api.hostip.info/?ip = 12.215.42.19 响应XML是: This is the Hostip Lookup Service hostip inapplicable 12.215.42.19 Sugar Grove, IL UNITED STATES US -88.4588,41.7696 问题是我不能包括:在Descendants方法中因为它抛出: XmlException:’:’chracater,hex值0x3A,不能包含在名称中。 谢谢

XDocument.Root.Element返回null

我有XML就像: false some matrix …Some more nodes… 和代码是这样的: var doc = XDocument.Parse(myXmlString); Console.WriteLine(doc.Root.Element(“Name”)); 和控制台只显示一个空格,因为doc.Root.Element(“Name”)返回null =( 虽然我可以在doc.Root.Elements()结果中找到这个元素。 doc.Root.Attribute(“MyAttribute”)给出了正确的结果。 它/我有什么问题?

XDocument to string:如何在声明中省略编码?

我正在为braindead企业XML API编写一个包装器。 我有一个XDocument,我需要变成一个字符串。 由于他们的XML解析器非常挑剔,甚至无法处理XML节点之间的空白,因此文档声明必须完全正确: 但是,XDocument.Save()方法始终在该声明中添加一个encoding属性: 由于过去一小时花在Google和Stack上寻找生成XML字符串的最佳方法,我能做的最好的事情是: string result = xmlStringBuilder.ToString().Replace(@”encoding=””utf-16″”, string.Empty)); 我试过了 xdoc.Declaration = new XDeclaration(“1.0”, null, null); 这确实成功地按照我想要的方式在XDocument中设置声明; 但是,当我调用Save()方法时,无论我走哪条路线(使用TextWriter,添加XmlWriterSettings等),编码属性都会被神奇地抛回其中。 有没有人有更好的方法来做到这一点,或者我的代码永远注定在一个可怕的字符串替换上面的注释中有一段咆哮?

Mono – XDocument.Load因LoadOptions.PreserveWhitespace而失败

使用Mono版本2.10.5,以下代码在任何XML文档上都失败: using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Xml.Linq; namespace TestXDocument { class MainClass { public static void Main (string[] args) { Stream s = File.Open(“Settings.xml”, FileMode.Open); XDocument d = XDocument.Load(s, LoadOptions.PreserveWhitespace); s.Close(); d.Save(“Settings.xml”); } } } 只有在XDocument.Load使用LoadOptions.PreserveWhitespace时才会发生这种情况。 有关如何解决这个问题或解决问题的任何想法? 在Linux Mint 12和Ubuntu 11.10上测试过。 这是例外: Unhandled Exception: System.InvalidOperationException: This XmlWriter does not accept Text […]

如果命名空间也被定义为默认值,则强制XDocument不使用命名空间前缀

我有一个xml文件,默认命名空间使用和不使用名称空间前缀。 当我生成xml输出时,我得到所有xml元素前缀。 有没有办法摆脱前缀,因为我使用默认命名空间? class Program { static void Main(string[] args) { var xml = “” + ” ” + ” ” + “”; var document = XDocument.Parse(xml); var output = document.ToString(); } } 输出: 我期待的是: 不幸的是,我无法删除重复的名称空间声明。 我正在使用的实际xml文件是由另一方提供的,我需要做尽可能少的修改。

使用LINQ从XML文件中选择元素

我有这个XML结构: My Work Main Building 1 relativeToGround Office 1 1 relativeToGround 这继续…… 我需要为每个建筑物选择建筑物“名称”并将其存储在列表中。 我写了这段代码: using System; using System.Linq; using System.Xml; using System.Xml.Linq; using System.Collections.Generic; namespace dsdsdsds { public class Building { public string BuildingName { get; set; } } class MainClass { public static void Main(string[] args) { List buildingNames = (from e in XDocument.Load(“buildings.kml”).Root […]

将XDocument转换为Stream

如何将XDocument中的XML转换为MemoryStream,而不将任何内容保存到磁盘?

解析HTML文档:正则表达式还是LINQ?

尝试解析HTML文档并提取一些元素(文本文件的任何链接)。 当前的策略是将HTML文档加载到字符串中。 然后找到文本文件的所有链接实例。 它可以是任何文件类型,但对于这个问题,它是一个文本文件。 最终目标是拥有一个IEnumerable字符串对象列表。 这部分很简单,但解析数据是个问题。 Blah Here is your first text file: Here is your second text file: Here is your third text file: Here is your fourth text file: Thanks for visiting! 最初的方法是: 将字符串加载到XML文档中,并以Linq-To-Xml方式对其进行攻击。 创建一个正则表达式,查找以href=开头,以.txt结尾的字符串 问题是: 那个正则表达式是什么样的? 我是一个正则表达式的新手,这是我的正则表达式学习的一部分。 您将使用哪种方法提取标签列表? 这将是最高效的方式? 哪种方法最易读/可维护? 更新:在HTML Agility Pack建议中向Matthew致敬。 它工作得很好! XPath建议也适用。 我希望我能将这两个答案都标记为“答案”,但我显然不能。 它们都是解决问题的有效方法。 这是一个使用Jeff建议的正则表达式的C#控制台应用程序。 它读取字符串很好,并且不包括任何未以.txt结尾的href。 使用给定的示例,它正确地.txt.snarg结果中包含.txt.snarg文件(在HTML字符串函数中提供)。 using System; […]