Tag: xml

C#:WPF datagrid和xml文件

如何使用类读取xml文件并在数据网格上填充它? 数据网格应该具有validationfunction吗? Xml文件: John Doe Straight Track Demo 1

如何在XDocument中删除除root之外的节点的xmlns属性

情况 我正在使用XDocument尝试删除第一个内部节点上的xmlns=””属性: 所以我想要的结果是: 码 doc = XDocument.Load(XmlReader.Create(inStream)); XElement inner = doc.XPathSelectElement(“/*/*[1]”); if (inner != null) { inner.Attribute(“xmlns”).Remove(); } MemoryStream outStream = new MemoryStream(); XmlWriter writer = XmlWriter.Create(outStream); doc.Save(writer); // <— Exception occurs here 问题 在尝试保存文档时,我得到以下exception: 在同一个start元素标记内,前缀”不能从”重新定义为’ http://my.namespace ‘。 这甚至意味着什么,我该怎么做才能删除那个讨厌的xmlns=”” ? 笔记 我确实想保留根节点的命名空间 我只想删除特定的xmlns ,文档中不会有其他xmlns属性。 更新 我尝试过使用这个问题的答案启发的代码: inner = new XElement(inner.Name.LocalName, inner.Elements()); 调试时, xmlns属性已从中消失,但我得到了相同的exception。

在.net中的SOAP信封中包装XML

我需要帮助将XML封装在第二方SOAP服务器的SOAP信封中。 第三方为入站请求和出站响应提供了xsd文件。 我已经使用xsd工具获取了这些XSD文件并创建了它们的C#类。 我的问题是我需要用SOAP信封包装序列化的请求,我不知道从哪里开始。 我正在查看Microsoft Web服务增强function3,但这表明它仅适用于.net 2.0和VS2005。 我正在使用VS2012和.net 4.5。 此外,我已经考虑通过Web服务连接到服务器,但它似乎不兼容, 并且没有WSDL 。 以下是SOAP服务器对入站请求的预期示例。 1 12345 这就是序列化XML字符串的样子。 1 12345 代码我用于我的网络请求和响应。 Byte[] byteArray = System.Text.UTF8Encoding.UTF8.GetBytes(data); WebRequest webRequest = WebRequest.Create(@”http://myserver:8888″); webRequest.ContentLength = byteArray.Length; webRequest.ContentType = @”text/xml; charset=utf-8″; webRequest.Headers.Add(“SOAPAction”, @”http://schemas.xmlsoap.org/soap/envelope/”); webRequest.Method = “POST”; Stream requestStream = webRequest.GetRequestStream(); requestStream.Write(byteArray, 0, byteArray.Length); requestStream.Close(); requestStream.Dispose(); WebResponse webResponse = webRequest.GetResponse(); Stream responseStream = […]

在C#中更改XmlSerializer生成的XML结构

我的课程如下 namespace Coverage { public class ClassInfo { public string ClassName; public int BlocksCovered; public int BlocksNotCovered; public ClassInfo() {} public ClassInfo(string ClassName, int BlocksCovered, int BlocksNotCovered) { this.ClassName = ClassName; this.BlocksCovered = BlocksCovered; this.BlocksNotCovered = BlocksNotCovered; } } public class Module { public List ClassInfoList; public int BlocksCovered; public int BlocksNotCovered; public string moduleName; […]

使用LINQ对XML进行排序

我想用LINQ对XML文件进行排序。 XML在下面,仅是一个示例。 通常它更大更复杂。 XML应按标题升序排序。 不是整个XML,而是每个parentNode本身。 叶子总是在底部。 文件夹或非叶子位于顶部。 以下XML已经结构良好,但标题的顺序错误。 排序算法还应该替换错误定位的非叶节点。 我已经有一些代码可以完成这项工作,但我想知道是否有更优雅或更短的方式。 目前我必须调用函数递归来进行转换。 也许这可以用另一种方式完成。 谢谢。 刘若英 这是我的XML: 这是我的代码: using (XmlReader reader = XmlReader.Create(XmlStream)) { XDocument xDoc = XDocument.Load(reader); Action sortXml = null; sortXml = xElement => { bool sortParentNode = false; foreach (var xElem in xElement.Elements()) { if (xElem.HasElements) { // go into deep sortXml(xElem); } else […]

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

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

C#:修改xml节点

我有那个xml文件: Alarm1 Desc1 03/07/2012 10:11AM 1 None 我想将Alarm1中的innertext修改为另一个值,因此我编写了实际复制整个节点的代码。 XmlDocument xml = new XmlDocument(); xml.Load(“0.xml”); XmlNodeList elements = xml.SelectNodes(“//reminders”); foreach (XmlNode element in elements) { if (element.InnerText == “Alarm1”) { XmlNode newvalue = xml.CreateElement(“MODIFIED”); element.ReplaceChild(newvalue, element); xml.Save(“0.xml”); } } 然后尝试了另一个代码: foreach (XmlElement element in xml.SelectNodes(“//reminder”)) { if (element.InnerText == “Alarm1”) { XmlNode newvalue = xml.CreateElement(“MODIFIED”); element.ReplaceChild(newvalue, […]

C#Xml序列化,集合和根元素

我的应用程序序列化流中的对象。 以下是我需要的样本: 在这种情况下,对象是“链接”对象的集合。 ———–第一版 起初我使用了DataContractSerializer ,但是你无法将成员序列化为属性( 源代码 ) 这是对象: [DataContract(Name=”link”)] public class LinkV1 { [DataMember(Name=”href”)] public string Url { get; set; } [DataMember(Name=”rel”)] public string Relationship { get; set; } } 这是结果: /users users /features features ———–第二版 好吧,不要安静我想要的东西,所以我尝试了经典的XmlSerializer ,但是……哦,不,如果根元素是一个集合,你不能指定根元素和集合元素的名称…… 这是代码: [XmlRoot(“link”)] public class LinkV2 { [XmlAttribute(“href”)] public string Url { get; set; } [XmlAttribute(“rel”)] public […]

我应该使用什么类型的collections?

我有大约10,000条记录。 每个记录有2个字段:一个字段是长度最多300个字符的字符串,另一个字段是十进制值。 这就像产品目录,其中包含产品名称和每种产品的价格。 我需要做的是允许用户键入任何单词并在列表框中显示包含该单词的所有产品及其价格。 就这样。 什么类型的收集最适合这种情况? 如果我需要根据产品名称或价格进行排序,那么选择是否仍然相同? 现在我正在使用XML文件,但我想使用一个集合,以便我可以在代码中嵌入所有值更简单。 谢谢你的建议。

如何让XmlSerializer不序列化容器标签?

我有一个简单的对象图,我想序列化,我还没有找到解决这个问题的方法。 这里是: [XmlRoot] public partial class MyData { private List itemsField; public MyData() { this.anyAttrField = new List(); this.itemsField = new List(); } [XmlElement(Type = typeof(MyDatum))] public List Items { get { return this.itemsField; } set { this.itemsField = value; } } } 这会产生以下XML: … 我想删除“Items”容器标记来生成它: … 我尝试了各种解决方案,但似乎无法找到解决方案。