Tag: xml

在C#中将元素添加到xml文件

我有一个格式如下的XML文件: testcode1 testcode2 … 我可以使用XDocument成功加载元素,但是我在添加新元素时遇到了麻烦(有许多函数,我尝试过的大多数函数对我来说效果不好)。 这怎么办? 新元素将包含代码段名称标记和代码段代码标记。 我以前的方法是打开文件,并使用字符串手动创建元素虽然有效,但这是一个非常糟糕的主意。 我试过的: XDocument doc = XDocument.Load(spath); XElement root = new XElement(“Snippet”); root.Add(new XElement(“name”, “name goes here”)); root.Add(new XElement(“SnippetCode”, “SnippetCode”)); doc.Element(“Snippets”).Add(root); doc.Save(spath); 结果如下: name goes here code goes here 它工作正常,但名称标签生成不正确。 它应该是 但我无法正确生成。

如何使用C#/ LINQ将XML转换为JSON?

我有以下XML文件,我需要在服务器中转换为JSON。 最初我以为我会将它转换为Dictionary然后使用JavaScriptSerializer将其转换为JSON,但由于每列可能有不同的值类型,我认为它不会起作用。 有没有人在C#/ LINQ之前做过类似的事情? 我需要保留每列的值类型(布尔值,字符串,整数)。 我很感激任何建议,因为我刚刚开始使用XML。 谢谢。 True Hello World 999

文件存在时FileMode.Open和FileMode.OpenOrCreate的区别? c#bug?

我写了那段代码: public void Save() { using (FileStream fs = new FileStream(Properties.Settings.Default.settings_file_path, FileMode.Open)) { XmlSerializer ser = new XmlSerializer(typeof(MySettings)); ser.Serialize(fs, this); } } 当我使用FileMode.Open一切都很好,输出是这样的: 12 A0 MEASUREMENT 5000 C0 MEASUREMENT 但当我将其更改为FileMode.OpenOrCreate输出将更改为: 12 A0 MEASUREMENT 5000 C0 MEASUREMENT > 是什么让整个xml文件因为最后添加>符号而损坏。 这是可解释的还是它的c#bug?

如何重命名序列化对象列表后生成的 XML属性

我正在序列化列表对象List ,XmlSerializer生成属性,我想重命名或删除它。 可以通过创建将List封装为字段的新类来完成吗? [XmlRoot(“Container”)] public class TestObject { public TestObject() { } public string Str { get; set; } } List tmpList = new List(); TestObject TestObj = new TestObject(); TestObj.Str = “Test”; TestObject TestObj2 = new TestObject(); TestObj2.Str = “xcvxc”; tmpList.Add(TestObj); tmpList.Add(TestObj2); XmlWriterSettings settings = new XmlWriterSettings(); settings.OmitXmlDeclaration = true; settings.Indent = true; XmlSerializer […]

在XML名称中编码空格字符

我得到一个XML文件,其中包含如下名称: something ↂ符号用三个字节表示:0xE2,0x86,0x82。 看起来ↂ0020应该被视为空间角色。 但是当我使用System.Xml.XmlReader读取XML时,字符ↂ0020不会转换为空格。 有没有办法让它们转换(当然除了更换)? 或者我刚刚破解了XML?

通过.NET将参数传递给XSLT样式表

我正在尝试将参数传递给XSLT样式表,但是当使用XSlCompiledTransform转换文档时,我得到的是一个空的xml文档。 这是用于添加参数的C#方法(在添加人们的建议之后) private static void CreateHierarchy(string manID) { string man_ID = manID; XsltArgumentList argsList = new XsltArgumentList(); argsList.AddParam(“Boss_ID”,””,man_ID); XslCompiledTransform transform = new XslCompiledTransform(); transform.Load(“htransform.xslt”); using (StreamWriter sw = new StreamWriter(“output.xml”)) { transform.Transform(“LU AIB.xml”, argsList, sw); } } 这是样式表。 我传入的参数是’Boss_ID’ type=”text/xsl” href=”..\styles\orgcharts.xsl” 我无法发布所有输入文档,因为它是机密信息,但这里是一个简短的清理版本 有人可以帮忙吗? 谢谢

如何使用注释从类的属性值派生xml元素名称?

我有具有ID和值以及名称的属性。 我可以使用XmlElement / XmlArray C#注释代表所有具有单个类的人吗? 我想从类属性名称派生xml元素名称 ; 我的class级看起来像: public class Property { public string name; //could be enum public int id; public string value; } 例如: new Property(“property1name”,2,”testvalue”); new Property(“property2name”,10,”anothervalue”); 我想要xml看起来像: 2testvalue 10anothervalue 而不是通常的 property1name2testvalue property2name10anothervalue 换句话说,xmlelement的名称来自类Property的属性名称

如何为XmlElement字段定义多个名称?

我有一个客户端应用程序提供给我的C#应用​​程序的XML文档。 这是客户端发送XML文件的方式: 2380983 还有一个支持XML反序列化的C#类: [XmlRoot] public class SomeAccount { [XmlElement(“parentId”)] public long ParentId { get; set; } //rest of fields… } 但是有一些客户端的系统以这种方式发送XML(请注意LeParentId中的LeParentId ): 2380983 如何使此字段(和其他字段)支持XML名称parentId和LeParentId ? 这是我目前用于XML反序列化的方法: public sealed class XmlSerializationUtil { public static T Deserialize(string xml) { if (xml == null) return default(T); XmlSerializer serializer = new XmlSerializer(typeof(T)); StringReader stringReader = new StringReader(xml); return […]

条件xml序列化

我有以下C#类: public class Books { public List BookList; } public class Book { public string Title; public string Description; public string Author; public string Publisher; } 如何将此类序列化为以下XML? 我希望XML只包含那些值为null / empty的属性。 例如:在第一个Book元素中,author是空白的,因此它不应出现在序列化XML中。

使用C#获取XML文档的属性值

假设我有以下XML文档。 More nodes go here 如何获取属性成功的值,在这种情况下将是字符串“true”。