Tag: xml

如何读取XML文件并写入List ?

我有一个List ,我已设法写入文件。 现在我正在尝试读取相同的文件并将其写回List 。 有没有办法做到这一点? 任何人都可以帮我开始吗? 会有用吗?

使用XmlArray反序列化xml文件?

我试图反序列化这个xml结构。 Test Test Test Test 我试过了: [Serializable] [XmlRoot(ElementName = “DietPlan”)] public class TestSerialization { [XmlArray(“Health”)] [XmlArrayItem(“Fruit”)] public string[] Fruits { get; set; } [XmlArray(“Health”)] [XmlArrayItem(“Veggie”)] public string[] Veggie { get; set; } } 但是这引发了一个exception“XML元素已经存在于当前范围内。使用XML属性为元素指定另一个XML名称或命名空间。” 谢谢你。

c#xml.Load()锁定磁盘上的文件导致错误

我有一个简单的类XmlFileHelper如下: public class XmlFileHelper { #region Private Members private XmlDocument xmlDoc = new XmlDocument(); private string xmlFilePath; #endregion #region Constructor public XmlFileHelper(string xmlFilePath) { this.xmlFilePath = xmlFilePath; xmlDoc.Load(xmlFilePath); } #endregion #region Public Methods public XmlNode SelectSingleNode(string xPathQuery) { return xmlDoc.SelectSingleNode(xPathQuery); } public string GetAttributeValueByName(XmlNode node, string attributeName) { return node.Attributes.GetNamedItem(attributeName).Value; } #endregion #region Public Properties […]

保存XmlDocument时,它会忽略XmlDeclaration(UTF8)中的编码并使用UTF16

我有以下代码: var doc = new XmlDocument(); XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration(“1.0”, “UTF-8”, null); doc.AppendChild(xmlDeclaration); XmlElement root = doc.CreateElement(“myRoot”); doc.AppendChild(root); root.InnerText = “myInnerText”; StringWriter sw = new StringWriter(); doc.Save(sw); Console.WriteLine(sw.ToString()); Console.WriteLine(); MemoryStream ms = new MemoryStream(); doc.Save(ms); Console.WriteLine(Encoding.ASCII.GetString(ms.ToArray())); 这是输出: myInnerText ??? myInnerText 基本上它的作用是创建一个xml文件,并将编码设置为utf8,但是当它将它保存到字符串编写器时,它会忽略我的编码并使用utf16。 但是,在使用内存流时,它使用utf8(带有额外的BOM字符) 为什么是这样? 为什么不尊重我对utf-8的显式编码设置? 非常感谢

处理无效的XMLhex字符

我正在尝试通过网络发送XML文档,但收到以下exception: “MY LONG EMAIL STRING” was specified for the ‘Body’ element. —> System.ArgumentException: ‘’, hexadecimal value 0x02, is an invalid character. at System.Xml.XmlUtf8RawTextWriter.InvalidXmlChar(Int32 ch, Byte* pDst, Boolean entitize) at System.Xml.XmlUtf8RawTextWriter.WriteElementTextBlock(Char* pSrc, Char* pSrcEnd) at System.Xml.XmlUtf8RawTextWriter.WriteString(String text) at System.Xml.XmlUtf8RawTextWriterIndent.WriteString(String text) at System.Xml.XmlRawWriter.WriteValue(String value) at System.Xml.XmlWellFormedWriter.WriteValue(String value) at Microsoft.Exchange.WebServices.Data.EwsServiceXmlWriter.WriteValue(String value, String name) — End of inner exception […]

如何将XML / JSON文件转换为C#类?

我有这样的XML文件: XML Developer’s Guide 44.95 An in-depth look at creating applications with XML. Mark Colsberg Dolor sit amet 5.95 Lorem ipsum 如何快速将其转换为C#类以使用LINQ的访问数据? 我是否必须手动为任何XML文件案例编写类? JSON格式怎么样? XSD是唯一的解决方案吗?

XML Document SelectSingleNode返回null

我试图从流阅读器读取XML,并且还获得响应XML。 但是当我尝试读取它的节点时,它总是返回null。 var request = (HttpWebRequest) WebRequest.Create(address); var response = (HttpWebResponse) request.GetResponse(); var stream = response.GetResponseStream(); if(stream != null) { var xmlReader = new XmlTextReader(stream); var xmlDocument = new XmlDocument(); xmlDocument.Load(xmlReader); var node = xmlDocument.SelectSingleNode(“RateQuote”); } XML文档 0 SECURED … KNOXVILLE USF Holland, Inc 5409 N NATIONAL DR KNOXVILLE TN 37914 8664655263 8006545963 8656379999 KNOXVILLE […]

C#如何从xml文件中获取所有元素名称

我想从xml文件中获取所有元素名称,例如xml文件是, …. 我想获得元素的名称“BookName”。 “ISBN”和“PublishDate”只有那些名称,不包括“BookStoreInfo”及其子节点的名称 我尝试了几种方法,但不起作用,我该怎么做?

在C#中更改元素值的最佳方法

我正在尝试查看更改XML中元素值的最佳方法。 Value 在C#中改变“价值”的最简单和/或最好的方法是什么? 我查看了XMLDocument,它将导致整个XML文档加载到内存中。 你能用XMLReader安全地完成吗? 问题在于改变价值并将其发回似乎是一个有趣的难题。 干杯:D

使用XML数据库字段的Linq-to-SQL – 为什么这样做?

一些背景:我有一个数据库,我想使用linq-to-sql通过C#应用程序进行更新。 此表中的一列具有XML数据类型。 该表中的每个其他列(不是XML数据类型)都可以完美地更新,但是当我对XML字段进行更改时,程序(看似)正确执行,但是在我之后字段始终保留其原始值运行SubmitChanges() 。 我浏览了互联网,发现Microsoft Connect上的一些post诊断出类似问题,最后在这里偶然发现了解决方案: 要强制XML字段更新,这不会: XElement tmp = MyLinqObject.XmlField; MyLinqObject.XmlField = null; MyLinqObject.XmlField = tmp; 而不是强迫LINQ更新XML列分配克隆对象: MyLinqObject.XmlField = new XElement (MyLinqObject.XmlField); 我可以确认这似乎确实有效,但我不确定为什么。 我唯一的猜测是XmlField属性在堆上有某种唯一标识符,通过制作克隆,你已经为它分配了一个新的唯一标识符。 当Linq然后生成查询时,它甚至不会尝试查看该字段是否已更新,因为它有一个新的id,它只是将值写入数据库。 但是,我只是在猜测并希望其他人能够更好地了解幕后发生的事情。 编辑 :为了解决Jon的post,问题的原因(正如在MS Connect网站上解释的那样)是“XML字段不会更新,因为Linq-to-SQL不处理XElement.Changed事件”。 对于我的实现,工作的代码最终看起来像这样: MyXElementProperty.SetElementValue(“Author”, author); MyXElementProperty = new XElement(MyXElementProperty); 作为参考(对于发现此问题的任何其他人),以下内容也有效: MyXElementProperty = new XElement(MyXElementProperty); MyXElementProperty.SetElementValue(“Author”, author);