Tag: xml

无法在C#中反序列化XML – InvalidOperationException

我有一个C#应用程序,在App.config文件中有一个自定义配置信息部分。 目前,我可以通过代码成功加载自定义信息。 但是,我也试图从数据库加载相同的配置信息。 为了做到这一点,我从App.config文件中获取了一串XML,我知道它正在工作。 这个XML字符串如下所示: 我试图将此XML反序列化为C#对象。 我已经定义了这样的对象: Departments.cs public class Departments : ConfigurationSection { private Departments() { } [ConfigurationProperty(“”, IsRequired = false, IsKey = false, IsDefaultCollection = true)] public DepartmentItemCollection Items { get { var items = base[“”] as DepartmentItemCollection; return items; } set { base[“items”] = value; } } public static Departments Deserialize(string xml) […]

使用C#将XML节点转换为属性

我有一个XML字符串加载到XMLDocument,类似于下面列出的: You Me TEST This is a test. 我想将文本节点转换为属性(使用C#),所以它看起来像这样: 任何信息,将不胜感激。

从类生成XML

我想从一个类构建以下XML节点。 some value 我的class级定义应该如何? class Foo { public string Value {set;get;} public string id{set;get;} } 我相信我应该为这些属性添加一些XML属性,但不确定它们是什么。

如何在LINQ中查询此XML?

我发现使用XML中的属性和嵌套元素很难。 如果我只想提取具有Type=”Mobile”属性的Phone元素并在一行中打印地址,我该如何在LINQ中执行此操作? 我想生成一个像这样的输出: 332-899-5678 | 123 Main, St Mercer Island, WA 68042 请帮忙,下面是我的示例xml文件 Patrick Hines 206-555-0144 425-555-0145 332-899-5678 123 Main St Mercer Island WA 68042

XDocument防止无效的charachters

我正在使用XDocument来保存一种数据库。 这个数据库由注册的聊天机器人组成,我只是有许多“bot”节点,其中包含“username”,“owner”等属性。 然而,偶尔会有一些聪明的家伙决定制作一个具有非常奇怪特征的机器人作为其中一个属性。 这使得XDocument类系列在读取该节点时抛出exception,这是一个非常大的问题,因为数据库无法完全保存,因为它一旦到达无效字符就停止写入文件。 我的问题是 – 有一个类似XSomething.IsValidString(string s)的简单方法,所以我可以省略有问题的数据吗? 我的数据库不是官方数据库,只是个人使用,因此我不必包含不良数据。 我正在使用的一些代码(变量file是XDocument): 要保存: file.Save(Path.Combine(Environment.CurrentDirectory, “bots.xml”)); 要加载(在检查File.Exists()等之后): file = XDocument.Load(Path.Combine(Environment.CurrentDirectory, “bots.xml”)); 要添加到数据库(变量都是字符串): file.Root.Add(new XElement(“bot”, new XAttribute(“username”, botusername), new XAttribute(“type”, type), new XAttribute(“botversion”, botversion), new XAttribute(“bdsversion”, bdsversion), new XAttribute(“owner”, owner), new XAttribute(“trigger”, trigger))); 请原谅我缺乏适当的XML技术,我刚刚开始。 我问的是,如果有一个XSomething.IsValidString(string s)方法,而不是我的XML有多糟糕。 好的,我刚刚得到exception,这里是确切的消息和堆栈跟踪。 System.ArgumentException: ”, hexadecimal value 0x07, is an invalid character. at System.Xml.XmlUtf8RawTextWriter.InvalidXmlChar(Int32 ch, […]

在C#中如何编码XML以在页面的JavaScript部分中将其输出到JSON内部

我有一个上传KML文件的处理程序,并返回带有KML文件作为属性的JSON: context.Response.Write(“{\”name\”:\”” + FileName + “\”,\”type\”:\”” + FileType + “\”,\”size\”:\”” + FileSize + “\”,\”region_id\”:\”” + regionID + “\”,\”kml\”:\”” + HttpUtility.HtmlEncode(xmlData) + “\”}”); 正如您所看到的,我正在尝试使用HttpUtility.HtmlEncode对KML进行编码,但我的响应中出现错误: 未捕获的exception:无效的JSON 如何在C#中对XML / KML文件进行属性编码,以便稍后在JavaScript中对其进行解码? 编辑#1:根据Cheeso的评论我在IIS 7.5 Windows 7上使用ASP.NET,.NET版本4.我的处理程序是一个ashx文件。 如果我从响应中HttpUtility.HtmlEncode(xmlData) KML数据( HttpUtility.HtmlEncode(xmlData) ),则响应正常。 编辑#2我也尝试根据主持人的评论使用System.Web.Script.Serialization.JavaScriptSerializer 。 我这样使用它: System.Web.Script.Serialization.JavaScriptSerializer serializer; context.Response.Write(“{\”name\”:\”” + FileName + “\”,\”type\”:\”” + FileType + “\”,\”size\”:\”” + FileSize + “\”,\”region_id\”:\”” + regionID […]

XDocument.Save到特定目录?

我第一次使用这个XML类,但找不到这条信息。 我正在做: xmlDoc = new XDocument(new XDeclaration(“1.0”, “utf-8”, “yes”)); xmlDoc.Add(new XElement(“Images”)); xmlDoc .Save(“C:\\Backup\\images.xml”); 但是不起作用。 它只适用于我只使用文件名,如“images.xml”,但当然,文件会保存在执行路径中。

如何将数据库数据转换为XML文件

问: 我是XML的初学者。我有一些数据来自我的数据库,我想将这些数据转换为XML文件,稍后将其导入特定程序。执行此操作所需的步骤是什么?请举例说明和文章如果可能的话? 需要这样的东西,但动态。

使用XPath实现IXmlSerializable ReadXml()的最佳方法

我正在实现IXmlSerializable的ReadXml()方法,我认为使用XPath可能是最好的方法。 但是,ReadXml()需要正确处理读者位置。 因为我的WriteXml()产生了这样的东西: 2 2 是否有比下面(这种可怕的方式)更好的方法来确保读者之后的正确定位? public override void ReadXml(System.Xml.XmlReader reader) { reader.Read(); /* Read Opening tag */ /* Using reader.ReadStartElement(“ObjectName”) reads forward a node, ie current node becomes the first whereas Read() doesn’t even when the documentation says they both do */ XPathNavigator n = MakeXPathNavigator(reader.ReadSubtree()); XPathNodeIterator nodes = n.Select(“.//SubNode”); while (nodes.MoveNext()) { /* […]

使用C#获取特定XML元素值的问题

假设我有以下XML文档,如何获取:name的元素值(在我的示例中,值是星期六100)? 我的困惑是如何处理名称空间。 谢谢。 我正在使用C#和VSTS 2008。 Saturday 100