Tag: xml

XmlReader – 我需要编辑一个元素并生成一个新元素

我重写了一个传入XmlReader的方法,我需要找到一个特定的元素,添加一个属性,然后创建一个新的XmlReader或者用修改后的内容替换现有的XmlReader。 我正在使用C#4.0 我已经使用XElement(Linq)进行了调查,但我似乎无法操纵现有元素并添加属性和值。 我知道XmlWriter有WriteAttributeString,这将是太棒了但是我不知道它是如何组合在一起的 我希望能够做到这样的事情—这是伪代码! public XmlReader DoSomethingWonderful(XmlReader reader) { Element element = reader.GetElement(“Test”); element.SetAttribute(“TestAttribute”,”This is a test”); reader.UpdateElement(element); return reader; }

XML序列化命名空间

我的代码产生的命名空间有问题。 我想要的是下面的XML: Addr1 Addr2 我得到的是这个XML: Addr1 Addr2 主要区别是: 1. xmlns:schemaLocation= needs to be xsi:schemaLocation= 2. xmlns:xmlns= needs to be xmlns= 3. Attributes Order, I would prefer the Attributes to be presented before the namespace attributes (This is not a big Issue, just nice to have) 目前我正在做的是用上面的1和2中的序列化字符串中的值替换我想要的值,一个有效的hack但我怀疑有一种方法可以修改命名空间代码来执行此操作吗? 这是我正在使用的代码,如何更改GetNameSpace()以在第1点和第2点执行我需要的操作,也可以重新排序属性?: public partial class Form1 : Form { public […]

Xml.Linq:Descendants()什么都不返回

我试图使用XElement从ncx文件(即xml文件)中读取: XElement foundNode = ncx.Descendants(“navPoint”).Where(r => r.Attribute(“class”).Value == “chapter”).FirstOrDefault(); 因此,foundNode为null,因为ncx.Descendants(“navPoint”)返回空枚举。 但数据是: Fine I. BLIND 你能解释一下这里有什么问题吗? 谢谢。

使用System.Xml.Linq命名空间显式元素关闭标记

我正在使用(.NET 3.5 SP1)System.Xml.Linq命名空间用数据的div标签填充html模板文档(然后将其保存到磁盘)。 有时div标签是空的,这在HTML方面似乎是一个问题。 根据我的研究,DIV标签不是自动关闭的。 因此,至少在Firefox下, 被认为是一个没有匹配结束标记的开始div标签。 所以,当我通过声明创建新的div元素时: XElement divTag = new XElement(“div”); 如何强制生成的XML为 而不是 ?

使用XmlNode获取当前节点的InnerText

我有一个XMLNode,其主体如下所示:(通过OpenCalais) Signal processing Signal processing 当我在上面调用XMLMNode.InnerText时,我会回来: SignalprocessingSignalprocessing 但是,我只想要标签本身的InnerText,而不是子’原始值’节点的InnerText。 当我调用XMLNode.Value ,它返回null。 如何在不连接其他子节点的所有InnerTexts的情况下获取此节点的InnerText?

正则表达式,用于删除XML标记及其内容

我有以下字符串,我想删除*和* (注意其中需要删除的其他标记内容),而不使用XML解析器(对于细小的琴弦,头顶太大)。 The big black cat sleeps. VB.NET或C#中的任何正则表达式都可以。

类型xxxx不期望使用xmlinclude或soapinclude

我有一个关于这个序列化问题的奇怪案例 – 在本网站上已经多次询问过,我已经完成了一些问题并尝试了常用项目无济于事: 将[XmlInclude]添加到抛出错误的类中 删除命名空间 为每个类添加不同的命名空间 为了进一步解释,我在下面提供了我的代码的简化版本。 本质上我使用WebServiceHost对象来运行RESTful服务,我的一个端点返回一个序列化为XML的对象(我用[DataContract]和[DataMember]属性注释了对象)。 此对象包含SerializableDictionary ( 此处 ),其中值已作为object键入。 我相信这就是它失败的原因: 在为值分配基元时,可以正常工作 当我将自定义对象分配给KV对V时,我得到了意外的类型exception,可能是因为Serializer不知道如何对对象进行序列化/某种命名空间问题 显然,我无法使用[XmlInclude]注释Object.cs,因为它是一个服务,我不是自己序列化我不能使用像 new Serializer(typeof(…), new Type[] { … }} 我有什么想法可以做什么? 我想过不输入dict值作为对象,而且更具体但问题是这个值可以采用原语或cusotm类型。 一些代码来解释上面的内容: 编辑:更新了以下代码,使其更加清晰 [DataContract] public class ResponseObject { [DataMember(Name = “data”)] public SerializableDictionary Data { get;set; } public ResponseObject() { Data = new SerializableDictionary(); } } … var d1 = new […]

将前缀添加到xml节点

当前文件格式 Value1 Value2 Value3 期望的输出 Value1 Value2 Value3 我使用XmlElement和XmlDocument将前缀添加到子Node元素,我无法完成它。 如果有人能在正确的方向上给我正确的推动,我将非常感激。

如何使用C#读取和编辑XML文件?

如何打开和编辑现有XML文件? 我想修改一些值,如: myaddr 例如,如果myaddr,我想放置loreal。 我在C#工作。 如果你能告诉我一些代码,我将不胜感激。

如何将具有不同名称但具有相同属性集的xml元素反序列化为类型化数组/集合

这是我试图反序列化的XML文件的一部分: … 7 94 LPS 120 V 540 222 1758 W 400 mm 150 mm 1348 W 475 mm 1 Cooling <By Category> 108 108 50 VA … … 这些是我用来反序列化它的类: [XmlType(AnonymousType = true)] [XmlRoot(“entry”, Namespace=”http://www.w3.org/2005/Atom”)] public class PartAtom { … [XmlElement(“family”, Namespace=”urn:schemas-autodesk-com:partatom”)] public Family Family { get; set; } } public class Family { [XmlAttribute(“type”)] […]