标签: xmlroot

用于Xml Serilization的XmlRoot()不起作用

我正在尝试让我的httphandler打印出格式为的XML文件:

<ScheduledShows>
    <ScheduledShowElement>...</ScheduledShowElement>
    <ScheduledShowElement>...</ScheduledShowElement>
    <ScheduledShowElement>...</ScheduledShowElement>
</ScheduledShows>
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,ScheduledShow.cs中的属性XmlRoot("ScheduledShowElement")不能按我希望的方式工作.相反,我得到的输出是:

<ScheduledShows>
    <ScheduledShow>...<ScheduledShow>
    <ScheduledShow>...<ScheduledShow>
    <ScheduledShow>...<ScheduledShow
</ScheduledShows>
Run Code Online (Sandbox Code Playgroud)

基本上,节点的名称没有被覆盖.如何让我的xml序列化程序将节点标记为?

下面是我的代码和xml输出.谢谢!

OneDayScheduleHandler.cs

using System;
using System.Collections.Generic;
using System.Web;

using System.Xml.Serialization;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data.Common;
using System.Data;
using System.IO;
using System.Xml;
using System.Text;
using CommunityServer.Scheduler;
namespace CommunityServer.Scheduler
{

    public class OneDayScheduleHandler : IHttpHandler
    {
        private readonly int NoLimitOnSize = -1;

        public void ProcessRequest(HttpContext context)
        {
            int offsetInDays, timezone, size;

            DateTime selectedDateTime;
            Int32.TryParse(context.Request.QueryString["timezone"], out timezone);
            Int32.TryParse(context.Request.QueryString["daysToOffset"], out offsetInDays);
            if (!String.IsNullOrEmpty(context.Request.QueryString["size"]))
            {
                Int32.TryParse(context.Request.QueryString["size"], out size);
            }
            else
            {
                size = …
Run Code Online (Sandbox Code Playgroud)

c# xml-serialization xmlroot

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

使用XMLRoot/XMLElement和使用Serializable()属性之间的区别(在c#中)

使用XMLRoot/XMLElement和使用Serializable()属性有什么区别?我怎么知道何时使用?

c# serialization serializable xmlroot

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

从ElementTree获取属性名称和值

我有一个<root>具有多个属性的XML 元素.我一直在使用这个ElementTree包.

在我从xml文件中解析了一个树之后,我得到了文档根目录,但我希望得到所请求的属性,甚至是整个属性列表.

<root a="1" b="2" c="3">
    </blablabla>
</root>
Run Code Online (Sandbox Code Playgroud)

如何<root>使用ElementTree 检索元素的所有属性名称和值?

python xml elementtree xmlroot

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

编组错误 - 缺少xmlrootelement注释错误

当我从一个Spring项目调用其中一个WSDL操作时,我得到以下异常 - com.sun.istack.internal.SAXException2: unable to marshal type "com.pkg.wsdl.ABC" as an element because it is missing an @XmlRootElement annotation

我在pom.xml中使用以下命令从WSDL(已被许多客户端使用)生成java对象作为spring项目的一部分 -

        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin</artifactId>
        <version>0.13.1</version>
Run Code Online (Sandbox Code Playgroud)

看看类似的问题解决方案我改变了代码以使用JAXBElement但仍然得到相同的错误 -

    ABC vabc = new ABC();
    vabc.set(..)   // populate vabc object 

    ObjectFactory of = new ObjectFactory();
    JAXBElement<ABC> jabc = of.createABC(vabc);
    ABC oabc = jabc .getValue();
Run Code Online (Sandbox Code Playgroud)

Marshaller代码 -

Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setContextPath("com.pkg.wsdl");
Run Code Online (Sandbox Code Playgroud)

并调用后端Web服务 -

        ABCResp response = (ABCResp) getWebServiceTemplate()
        .marshalSendAndReceive("http://host:port/svcname",oabc);
Run Code Online (Sandbox Code Playgroud)

jaxb marshalling xmlroot spring-boot

4
推荐指数
1
解决办法
5162
查看次数

PYTHON:如何将根节点添加到XML

我有一个xml文件看起来像这样

<A>
  <B>
     <C>
       ....
     </C>
  </B>
</A>
Run Code Online (Sandbox Code Playgroud)

我想在元素'A'之上添加root.我找到了一种向root添加元素的方法.但是如何更改现有的root并使用python添加它.

将root添加到xml之后,它应该如下所示

<ROOT>
  <A>
    <B>
       <C>
         ....
       </C>
    </B>
  </A>
</ROOT>
Run Code Online (Sandbox Code Playgroud)

python xml lxml elementtree xmlroot

1
推荐指数
1
解决办法
4061
查看次数

XmlSerializer在Root上反序列化多个对象的数组/列表

我正在尝试反序列化以下XML输出:

<?xml version="1.0" encoding="ISO-8859-1"?>
<Foo>
   <Val>Data1</Val>
</Foo>
<Foo>
   <Val>Data2</Val>
</Foo>
Run Code Online (Sandbox Code Playgroud)

(这是从硬件设备输出,不能更改)

我有一个XML类型定义为:

    [XmlType(AnonymousType=true, Namespace="")]
    public class Foo
    {
        public string Val { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我试图通过创建一个序列化器来反序列化这个数组:

  var s = new XmlSerializer(typeof(Foo[]));
  //or
  var s = new XmlSerializer(typeof(List<Foo>);
Run Code Online (Sandbox Code Playgroud)

但每次调用s.Deserialize()都会导致InvalidOperaitonException:

 System.InvalidOperationException: <Foo xmlns=''> was not expected.
Run Code Online (Sandbox Code Playgroud)

注意

 var s = new XmlSerializer(typeof(Foo));
 // Only deseralizes the first Foo (Data1).
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

c# serialization xml-serialization xmlroot

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