标签: xml-serialization

将XML转换为String并附加到页面

我想转换像这样的xml元素:

<asin>?B0013FRNKG?</asin>?
Run Code Online (Sandbox Code Playgroud)

在javascript中输入字符串

我用过XMLSerializer:

new XMLSerializer().serializeToString(xml);
Run Code Online (Sandbox Code Playgroud)

字符串仅显示在alert()和控制台中.在页面上它只是说

[object Element][object Element]
Run Code Online (Sandbox Code Playgroud)

我想得到这个字符串.

javascript xml xml-serialization

29
推荐指数
2
解决办法
9万
查看次数

如何将XML映射到C#对象

我有一个XML,我想加载到对象,操纵这些对象(设置值,读取值),然后保存这些XML.对我来说,在我创建的结构(xsd)中使用XML非常重要.

一种方法是编写我自己的序列化程序,但它是否内置支持它或C#中的开源我可以使用?

c# xml serialization xml-serialization

28
推荐指数
3
解决办法
7万
查看次数

防止对DateTime值进行反序列化时的时区转换

我有一个我使用序列化/反序列化的类XmlSerializer.该类包含一个DateTime字段.

序列化时,该DateTime字段由包含GMT偏移的字符串表示,例如2010-05-05T09:13:45-05:00.反序列化时,这些时间将转换为执行反序列化的机器的本地时间.

由于不值得解释的原因,我想阻止这种时区转换的发生.序列化发生在野外,其中存在此​​类的多个版本.反序列化发生在我控制的服务器上.因此,似乎在反序列化期间最好处理这个问题.

除了IXmlSerializable"手动" 执行和执行所有反序列化之外,我怎样才能实现这一点?

c# timezone datetime xml-serialization

28
推荐指数
2
解决办法
3万
查看次数

如何使用XmlSerializer序列化内部类?

我正在建立一个与第三方接口的库.通过XML和HTTP帖子进行通信.那很有效.

但是,无论代码使用哪个库都不需要知道内部类.我使用此方法将内部对象序列化为XML:

internal static string SerializeXML(Object obj)
{
    XmlSerializer serializer = new XmlSerializer(obj.GetType(), "some.domain");

    //settings
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = true;
    settings.OmitXmlDeclaration = true;

    using (StringWriter stream = new StringWriter())
    {
        using (XmlWriter writer = XmlWriter.Create(stream, settings))
        {
            serializer.Serialize(writer, obj);
        }
        return stream.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我将类的访问修饰符更改为时internal,我在运行时得到一个异常:

[System.InvalidOperationException] = {"MyNamespace.MyClass由于其保护级别而无法访问.只能处理公共类型."}

该异常发生在上面代码的第一行.

我希望我的图书馆的课程不公开,因为我不想公开它们.我能这样做吗?如何使用我的通用序列化程序使内部类型可序列化?我究竟做错了什么?

c# xml oop serialization xml-serialization

28
推荐指数
1
解决办法
2万
查看次数

如何在C#中仅反序列化部分XML文档

这是我试图解决的问题的一个虚构的例子.如果我在C#中工作,并且像这样使用XML:

<?xml version="1.0" encoding="utf-8"?>
<Cars>
  <Car>
    <StockNumber>1020</StockNumber>
    <Make>Nissan</Make>
    <Model>Sentra</Model>
  </Car>
  <Car>
    <StockNumber>1010</StockNumber>
    <Make>Toyota</Make>
    <Model>Corolla</Model>
  </Car>
  <SalesPerson>
    <Company>Acme Sales</Company>
    <Position>
       <Salary>
          <Amount>1000</Amount>
          <Unit>Dollars</Unit>
    ... and on... and on....
  </SalesPerson>
</Cars>
Run Code Online (Sandbox Code Playgroud)

SalesPerson中的XML可能非常长,大小为兆字节.我想反序列化标记,不反序列化SalesPerson XML元素,而是保持原始形式"以后".

基本上我希望能够将其用作XML的Objects表示.

[System.Xml.Serialization.XmlRootAttribute("Cars", Namespace = "", IsNullable = false)]
public class Cars
{
    [XmlArrayItem(typeof(Car))]
    public Car[] Car { get; set; }

    public Stream SalesPerson { get; set; }
}

public class Car
{
    [System.Xml.Serialization.XmlElementAttribute("StockNumber")]
    public string StockNumber{ get; set; }

    [System.Xml.Serialization.XmlElementAttribute("Make")]
    public string Make{ get; set; }

    [System.Xml.Serialization.XmlElementAttribute("Model")] …
Run Code Online (Sandbox Code Playgroud)

c# xml serialization xml-serialization

27
推荐指数
2
解决办法
4万
查看次数

如何在c#中使用XMLSerialize for Enum类型的属性?

我有一个简单的枚举:

enum simple 
{ 
  one, 
  two, 
  three 
};
Run Code Online (Sandbox Code Playgroud)

我也有一个具有类型属性的类simple.我尝试用属性装饰它:[XmlAttribute(DataType = "int")].但是,当我尝试使用一个序列化它时失败XmlWriter.

这样做的正确方法是什么?我是否必须标记枚举本身以及属性,如果是,请使用哪种数据类型?

.net c# xml serialization xml-serialization

27
推荐指数
2
解决办法
3万
查看次数

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

我正在序列化对象列表 List<TestObject> ,XmlSerializer生成<ArrayOfTestObject>属性,我想重命名或删除它.
可以通过创建将List封装为字段的新类来完成吗?

 [XmlRoot("Container")]    
 public class TestObject
 {
     public TestObject() { }                         
     public string Str { get; set; }                         
 }

 List<TestObject> tmpList = new List<TestObject>();

 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 serializer = new XmlSerializer(typeof(List<TestObject>));

 using (XmlWriter writer = XmlWriter.Create(@"C:\test.xml", settings))
 {              
     XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
     namespaces.Add(string.Empty, string.Empty);
     serializer.Serialize(writer, tmpList, namespaces);                            
} …
Run Code Online (Sandbox Code Playgroud)

c# xml xml-serialization

27
推荐指数
3
解决办法
2万
查看次数

如何使用asp.net序列化使用值和属性反序列化xml节点

我有4个小类来从xm轮询中反序列化xml,到可用的类来构建轮询.

现在,我知道如何从类中设置属性,以匹配xml中的某个属性或元素,如果该元素只是一个简单的字符串,但如果该元素也具有如下例所示的属性,该怎么办?

<Questions>
 <Question id="a guid">
  <AnswerItems>
   <AnswerItem Id="a guid">3</AnswerItem>
   <AnswerItem Id="a guid">2</AnswerItem>
   <AnswerItem Id="a guid">5</AnswerItem>
  </AnswerItems>
 </Question>
</Questions>
Run Code Online (Sandbox Code Playgroud)

问题类看起来像这样:

[Serializable()]
public class Question
{
    [XmlAttribute("Id")]
    public Guid QuestionId { get; set; }

    [XmlArray("AnswerItems")]
    [XmlArrayItem("AnswerItem", typeof(AnswerItem))]
    public AnswerItem[] AnswerItems { get; set; }
}

[Serializable()]
public class AnswerItem
{
    [XmlAttribute("Id")]
    public Guid QuestionId { get; set; }

    // how do i fetch the value of this node? 
    // its not a XmlElement and it's not an XmlValue
}
Run Code Online (Sandbox Code Playgroud)

好的,所以AnswerItem节点的值,这也是我想要得到的.我可以很容易地不使用AnswerItem类,只使用String类型的XmlArray AnswerItems并将值放在数组中,但之后我将丢失AnswerItem的Id属性.

c# xml xml-serialization c#-4.0

27
推荐指数
1
解决办法
2万
查看次数

如何在.NET中反序列化期间指定XML序列化属性以支持名称空间前缀?

我有以下XML:

<person xmlns:a="http://example.com" xmlns:b="http://sample.net">
    <a:fName>John</a:fName>
    <a:lName>Wayne</a:lName>
    <b:age>37</b:age>
</person>
Run Code Online (Sandbox Code Playgroud)

如何在类上定义XML序列化属性以支持所描述的场景?

.net xml xml-serialization xml-namespaces

26
推荐指数
1
解决办法
2万
查看次数

Java Serialization vs JSON vs XML

我想知道在处理通过网络传输对象时我们应该选择什么序列化机制.优缺点都有什么 ?

我知道大多数的我们在使用的时候JSON还是XML用于AJAX自传输格式相当多Javascript格式,再加上JSON是相当轻巧的,其占用空间小,因此是Java系列化完全出表的?

java serialization json xml-serialization data-serialization

26
推荐指数
3
解决办法
2万
查看次数