我知道没有直接的方法,但仍然..我们可以将XElement元素转换为XmlNode 。 InnerText和InnerXml等选项是特定InnerXml XmlNode 。 所以,如果我想使用这些选项,可以做些什么来将XElement转换为XmlNode ,反之亦然。
我怎样才能做到这一点? 或者序列化程序会自动进行递归,并将所有这些子对象序列化为XML吗? 举个例子,如何序列化包含其他类对象的类本身! 这是这个问题的核心! 我试过这个,并没有向目标XML文件输出任何内容 (XML头除外)。 我的问题是我需要序列化一个简单的类,它只包含一个List对象。 但是,这些实体也是Lod List对象。 (另一个好处是,如果我可以避免某些组件的序列化,因为一些组件是派生的并且在其中包含字典)。 public void SaveCurrent(string MapFileName) { string MapPath = world_.game_.Content.RootDirectory + “/Maps/” + MapFileName + “.xml”; StreamWriter MapWriter = new StreamWriter(MapPath); Map SavedMap = new Map(); SavedMap.Entities = world_.Entities; XmlSerializer xSerializer = new XmlSerializer(SavedMap.GetType()); xSerializer.Serialize(MapWriter, SavedMap); MapWriter.Close(); } 这是进行序列化的代码片段。 public class Map { internal string MapName; […]
我正在努力为这个xml创建反序列化类: John Johnos Some Street 1 24 success 我试图使用自动创建的代码(在VisualStudio 12中:编辑 – >选择性粘贴 – >将XML粘贴为类): /// [System.SerializableAttribute()] [System.ComponentModel.DesignerCategoryAttribute(“code”)] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = “http://schemas.xmlsoap.org/soap/envelope/”)] [System.Xml.Serialization.XmlRootAttribute(Namespace = “http://schemas.xmlsoap.org/soap/envelope/”, IsNullable = false)] public partial class Envelope { private EnvelopeBody bodyField; private string encodingStyleField; /// public EnvelopeBody Body { get { return this.bodyField; } set { this.bodyField = value; […]
全部,我想创建一个肥皂信封xml文件,例如。 我使用System.Xml.Linq来执行此操作,但我无法弄清楚如何将soap前缀添加到encodingStyle属性。 到目前为止,我有这个: XNamespace ns = XNamespace.Get(“http://www.w3.org/2001/12/soap-envelope”); XAttribute prefix = new XAttribute(XNamespace.Xmlns + “soap”, ns); XAttribute encoding = new XAttribute(“encodingStyle”, “http://www.w3.org/2001/12/soap-encoding”); XElement envelope = new XElement(ns + “Envelope”, prefix, encoding); 这给了我 您使用XAttribute为元素添加前缀,我可以使用XAttribute向XAttribute添加前缀吗? 谢谢,P
以下是在InfoPath中创建的XML文件的示例: hello world 那些带有问号的前三个节点是什么叫……以及如何在C#中创建它们? 到目前为止我有这个: XmlDocument xmldoc; XmlDeclaration xmlDeclaration; xmldoc=new XmlDocument(); xmlDeclaration = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, “”, “”) as XmlDeclaration; xmlDeclaration.Encoding = “UTF-8”; xmldoc.AppendChild(xmlDeclaration); 这适用于顶级XML声明节点,但如何创建接下来的两个? 提前致谢 :)
我有一个小数属性,就像 [XmlElementAttribute(DataType = “decimal”)] decimal Price 问题是我想强制它始终以2的精度序列化,但如果价格是10.50,它将被序列化为XML,如10.5 。 有什么方法可以强制它(没有创建新属性或更改此属性的获取?我正在寻找一些方法来执行此操作只将模式发送到XmlSerializer(或XmlElementAttribute)或任何聪明的方法来执行此操作? 谢谢
我在C#中解析一些XML。 我从数据库中获取它,因此在使用XmlTextReader读取它之前将其转换为MemoryStream。 问题是我收到此错误: Name cannot begin with the ‘ ‘ character, hexadecimal value 0x20. Line 1, position 3. Name cannot begin with the ‘ ‘ character, hexadecimal value 0x20. Line 1, position 3.以下是我的XML和我的阅读代码(它来自数据库,没有空白的第一个字符)。 有什么建议? XML: C#: byte[] byteArray = new byte[formXml.Length]; System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); byteArray = encoding.GetBytes(formXml); MemoryStream xmlStream = new MemoryStream(byteArray); XmlTextReader […]
我正在尝试使用C#生成以下xml元素。 我遇到的问题是我得到了exception:前缀“无法从”重新定义到同一个start元素标记内。 这是我的c#代码: XNamespace xsi = “http://www.w3.org/2001/XMLScema-instance” XElement foo = new XElement(“Foo”, new XAttribute(“xmlns”, “http://schemas.foo.com”), new XAttribute(Xnamespace.Xmlns + “xsi”, “http://www.w3.org/2001/XMLSchema-instance”), new XAttribute(xsi + “schemaLocation”, “http://schemas.foo.com http://schemas.foo.com/Current/xsd/Foo.xsd”)); 我怎样才能解决这个问题? 我正在尝试将生成的xml作为SOAP消息的主体发送,我需要它以接收器的这种格式。 编辑:我在另一个问题上找到了答案。 控制XML名称空间的顺序
基于此源代码,我无法将API中的数据检索到XDocument 。 我检索错误消息 {“远程服务器返回错误:(400)错误请求。”} 题: 我不知道该怎么办? XDocument xml = XDocument.Parse(new WebClient().DownloadString(“http://api.arbetsformedlingen.se/af/v0/platsannonser/matchning?lanid=1&kommunid=180&yrkesid=2419&1&antalrader=10000”));
我有这个XML ,只是想知道如何转换成C#类 ? Sample text… clientLogo.png