标签: simple-framework

SimpleXML枚举区分大小写

我一直在尝试使用simplexml库(v2.6.2)http://simple.sourceforge.net/home.php创建XML

我想要创建的XML必须保存枚举值,该值应区分大小写.以下是POJO:

 package pojos;

public enum MyEnum {

    NEW("new"),
    OLD("old");

     private final String value;

     MyEnum(String v)
     {
         value = v;
     }

     public String value() {
            return value;
        }

        public static MyEnum fromValue(String v) {
            for (MyEnum c: MyEnum.values()) {
                if (c.value.equals(v)) {
                    return c;
                }
            }
            throw new IllegalArgumentException(v);
        }

}
Run Code Online (Sandbox Code Playgroud)

以下是序列化代码:

import java.io.File;

import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;

import pojos.MyEnum;


public class TestEnum {

    /**
     * @param args
     * @throws Exception 
     */
    public static void main(String[] args) throws …
Run Code Online (Sandbox Code Playgroud)

java enums new-operator simple-framework

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

Java Simple XML Converter将元素写入OutputNode

简单的XML允许您制作自己的转换器.

此write方法用于将对象序列化为XML.应该以这样的方式执行序列化:所有对象值由所提供节点的元素或属性表示.这确保了它可以在以后完全反序列化.

@Convert(MyClass.Converter.class)
public class MyClass {
  public MyClass() {}

  public static class Converter implements Converter<MyClass> {
    public MyClass read(InputNode node) {
      return new MyClass();
    }

    public void write(OutputNode node, MyClass value) {

    }
  }
}
Run Code Online (Sandbox Code Playgroud)

该文档描述了在OutputNode中表示元素,那么如何向OutputNode添加元素?OutputNode的文档似乎没有任何方法可以向其添加元素或节点.

java xml-parsing simple-framework

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

理解简单的XML解析器 - 新文件输出 - Java

我正在尝试学习如何使用此线程中详述的Simple XML Framework:解析XML的最佳实践.

我使用以下代码:

public class SimpleXMLParserActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);

    Serializer serializer = new Persister();
    Example example = new Example("Example message", 123);
    File result = new File("example.xml");

    try {
        Log.d("Start", "Starting Serializer");
        serializer.write(example, result);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        Log.d("Self", "Error");
        e.printStackTrace();
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我在理解这条线时遇到了问题

File result = new File("example.xml");
Run Code Online (Sandbox Code Playgroud)

1)这行是否在我的app中创建了一个名为example.xml的新文件?如果是这样,该文件位于何处.

2)或者这行是否找到一个名为example.xml的现有文件然后添加到它?如果是这样,应该将example.xml文件放在我的应用程序包中,以便找到它.我确实注意到我收到一条错误消息:

java.io.FileNotFoundException: /example.xml (Read-only …
Run Code Online (Sandbox Code Playgroud)

java xml android xml-parsing simple-framework

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

SimpleXML问题

我正在使用SimpleXML库.我需要获取rss feed并将其转换为java对象.这里我需要映射到对象的XML

<rss xmlns:lj="http://www.livejournal.org/rss/lj/1.0/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom10="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>??????! ?????! ?? ?????! ? ?? ? ???!</title>
<link>http://xuma.livejournal.com/</link>
<description>
??????! ?????! ?? ?????! ? ?? ? ???! - LiveJournal.com
</description>
<lastBuildDate>Thu, 17 Mar 2011 10:08:33 GMT</lastBuildDate>
<generator>LiveJournal / LiveJournal.com</generator>
<lj:journal>xuma</lj:journal>
<lj:journalid>5295048</lj:journalid>
<lj:journaltype>personal</lj:journaltype>
<copyright>NOINDEX</copyright>
<image>
<url>http://l-userpic.livejournal.com/104864030/5295048</url>
<title>??????! ?????! ?? ?????! ? ?? ? ???!</title>
<link>http://xuma.livejournal.com/</link>
<width>66</width>
<height>100</height>
</image>
<item>
<guid isPermaLink="true">http://xuma.livejournal.com/7831.html</guid>
<pubDate>Thu, 17 Mar 2011 10:08:33 GMT</pubDate>
<title>??????. ??????? ????????????.</title>
<link>http://xuma.livejournal.com/7831.html</link>
<description>...</description>
<comments>http://xuma.livejournal.com/7831.html</comments>
<lj:security>public</lj:security>
<lj:reply-count>0</lj:reply-count>
</item>
<item>
<guid isPermaLink="true">http://xuma.livejournal.com/7575.html</guid>
<pubDate>Sat, 16 Oct …
Run Code Online (Sandbox Code Playgroud)

java xml mapping rss simple-framework

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

Android - 简单的XML框架.@Convert干扰@Attribute - 如何解决这个问题?

我正在努力捕获标签中包含的元素的顺序.这是所有代码:

League.java:

@Root
@Convert(value = LeagueConverter.class)
public class League 
{
    @Attribute
    private String name;

    @Element(name="headlines", required = false)
    private Headlines headlines;

    @Element(name="scores", required = false)
    private Scores scores;

    @Element(name="standings", required = false)
    private Standing standings;

    @Element(name="statistics", required = false)
    private LeagueStatistics statistics;

    public List<String> order = new ArrayList<String>();

        // get methods for all variables
}
Run Code Online (Sandbox Code Playgroud)

LeagueConverter.java:

public class LeagueConverter implements Converter<League>
{
       @Override
       public League read(InputNode node) throws Exception
       {
               League league = new League();
               InputNode next = node.getNext();
               while( …
Run Code Online (Sandbox Code Playgroud)

android converter xml-parsing simple-framework

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

在android上使用simplexml解析数据时需要的值异常

我正在使用simplexml解析来从网络中获取数据.解析它时显示以下错误.

错误:

org.simpleframework.xml.core.ValueRequiredException: Unable to satisfy @org.simpleframework.xml.ElementList(data=false, empty=true, entry=, inline=false, name=, required=true, type=void) on field 'jobs' private java.util.List com.example.simpledataparsing.JobList.jobs for class com.example.simpledata.line2
Run Code Online (Sandbox Code Playgroud)

xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<joblist>
<job><id>75027</id><status>OPEN</status><customer>Manikandan</customer><address>asdf</address><city>salem</city><state>tn</state><zip>636005</zip><product>pipe</product><producturl></producturl><comments>asdf</comments></job>
</joblist>
Run Code Online (Sandbox Code Playgroud)

pojo类:JobList.java

package com.example.simpledataparsing;

import java.util.List;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
@Element (name="joblist")
public class JobList {

    @ElementList
    private List<Job> jobs;

    public List<Job> getJobs() {
        return jobs;
    }

    public void setJobs(List<Job> jobs) {
        this.jobs = jobs;
    }


}
Run Code Online (Sandbox Code Playgroud)

Job.java

package com.example.simpledataparsing;

import org.simpleframework.xml.Element;
@Element (name = "job")
public class Job {

    @Element …
Run Code Online (Sandbox Code Playgroud)

android simple-framework

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

Kotlin - 使用 SimpleXml 解析带有列表的 Xml 响应

我正在尝试解析来自 API 的 XML 响应,但“Field”元素列表有问题。我正在尝试创建具有元素内部属性和文本的 Field 对象,例如该对象的属性,但无法找出我需要为元素文本使用什么注释。\n我尝试使用

\n\n
  @get:Text\n  @set:Text\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
@field:Text\n
Run Code Online (Sandbox Code Playgroud)\n\n

但得到了同样的错误

\n\n
java.lang.RuntimeException: org.simpleframework.xml.core.PersistenceException: Constructor not matched for class NetworkTestContainer$Field\n
Run Code Online (Sandbox Code Playgroud)\n\n

任何人都可以为我提供适合此案例的适当注释吗?

\n\n

有XML结构:

\n\n
<response>\n<commands>\n    <command>\n        <nick>QUEUECAUSES_LIST</nick>\n        <result>\n            <DATASET Version="1.0" Class="TQueryAdv" Name="">\n                <Row Index="1">\n                    <Field Name="SHOPID" Type="6" Size="0">-1</Field>\n                    <Field Name="IDCODE" Type="6" Size="0">3000000000001</Field>\n                    <Field Name="CAPTION" Type="1" Size="255">\xd0\x9a\xd0\xbe\xd0\xbd\xd1\x81\xd1\x83\xd0\xbb\xd1\x8c\xd1\x82\xd0\xb0\xd1\x86\xd0\xb8\xd1\x8f</Field>\n                    <Field Name="PRIORITY" Type="6" Size="0">0</Field>\n                </Row>\n                <Row Index="2">\n                    <Field Name="SHOPID" Type="6" Size="0">-1</Field>\n                    <Field Name="IDCODE" Type="6" Size="0">3000000000021</Field>\n                    <Field Name="CAPTION" Type="1" Size="255">\xd0\x9e\xd1\x87\xd0\xb5\xd1\x80\xd0\xb5\xd0\xb4\xd1\x8c</Field>\n                    <Field Name="PRIORITY" Type="6" Size="0">1</Field>\n                </Row>\n            </DATASET>\n        </result>\n    </command>\n</commands>\n</response>\n
Run Code Online (Sandbox Code Playgroud)\n\n …

kotlin simple-framework retrofit

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

Simple-xml:如何注释我的"点"类

我必须在Android程序中表示这样的数据结构:

<?xml version="1.0" encoding="utf-8"?>
<points>
    <point id="La Gioconda">
       <rssi id="north">-55</rssi>
       <rssi id="east" >-76</rssi>
       <rssi id="south">-64</rssi>
       <rssi id="east" >-92</rssi>
    </point>
    <point id="La Pietà">
       <rssi id="north">-51</rssi>
       <rssi id="east" >-60</rssi>
       <rssi id="south">-88</rssi>
       <rssi id="east" >-59</rssi>
    </point>
</points>
Run Code Online (Sandbox Code Playgroud)

下面我报告我使用的Points,Point和Rssi类,得到这个错误:

05-03 07:49:19.884: DEBUG/com.marcos.training.TrainingActivity(354): org.simpleframework.xml.core.ValueRequiredException: Unable to satisfy @org.simpleframework.xml.Element(data=false, name=, required=true, type=void) on field 'dbm' protected java.lang.Integer com.marcos.training.Rssi.dbm for class com.marcos.training.Rssi at line 4
Run Code Online (Sandbox Code Playgroud)

我肯定会错过一些明显的东西...... :-(

File Points.java:

package com.marcos.training;

import java.util.List;

import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;

@Element
public class Points {
    @ElementList(inline=true)
    private List<Point> list;

    public …
Run Code Online (Sandbox Code Playgroud)

java android simple-framework

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

如何使用SimpleXML框架处理继承?

我目前正在使用SimpleXML框架来解析XML文件,我正面临一个经常出现的问题.

收到的XML可以是这样的:

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

或类似的东西:

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

我希望B和C扩展另一个类,比如A.

使用SimpleXML这样做的整洁方法是:

@Root(name="root")
class Root {

   @Element(name="B", required="false")
   private B b;

   @Element(name="C", required="false")
   private C c;
}

class B extends A {

}

class C extends A {

}
Run Code Online (Sandbox Code Playgroud)

我知道我可以做一些我在SimpleXML文档中找到的东西,改变我的XML格式:

<root>
   <A class="example.B">     // or "example.C"
      ...
   </A>
</root>
Run Code Online (Sandbox Code Playgroud)

然后我的Java类:

@Root(name="root")
class Root {

   @Element(name="A")
   private A a;
}

class B extends A {

}

class C extends A {

}
Run Code Online (Sandbox Code Playgroud)

我真的很喜欢使用这个解决方案,但我不确定是否要在解析它之前完成在客户端更改XML的过程.问题是它无法在服务器端完成,因为我无法控制它.

所以我的问题是:

这是我唯一的解决方案吗?

在这种情况下,你们知道是否有一个快速的解决方案来改变客户端的xml文件?

java inheritance android simple-framework

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

Kotlin - 使用simpleXML解析xml内联列表

我正在尝试使用kotlin中的simplexml解析rss feed.

该Feed是来自itunes顶级播客

返回的数据具有以下结构:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Top Audio Podcasts</title>
    <link>https://rss.itunes.apple.com/api/v1/us/podcasts/top-podcasts/all/10/explicit.rss</link>
    <lastBuildDate>Fri, 13 Jul 2018 01:36:19 -0700</lastBuildDate>
    <atom:link rel="self" type="application/rss+xml" href="https://rss.itunes.apple.com/api/v1/us/podcasts/top-podcasts/all/10/explicit.rss"/>
    <atom:link rel="alternate" type="text/html" href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewTop?genreId=26&amp;popId=28"/>
    <description>iTunes Store : Top Audio Podcasts</description>
    <category>iTunes Store</category>
    <copyright>Copyright © 2018 Apple Inc. All rights reserved.</copyright>
    <item>
      <title>The Wilderness - Crooked Media</title>
      <category domain="">Crooked Media</category>
      <link>https://itunes.apple.com/us/podcast/the-wilderness/id1408796715?mt=2</link>
      <guid>https://itunes.apple.com/us/podcast/the-wilderness/id1408796715?mt=2</guid>
      <description>The Wilderness</description>
      <category>podcast</category>
      <category>News &amp; Politics</category>
      <category>Podcasts</category>
      <category>Society &amp; Culture</category>
      <category>History</category>
      <pubDate>Fri, 6 Jul 2018 00:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Aaron Mahnke's …
Run Code Online (Sandbox Code Playgroud)

android kotlin simple-framework retrofit2

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

简单框架:消除序列化XML中不需要的空白区域

问题:

如何在使用Simple框架时从序列化的XML中消除不必要的空格字符?

细节:

让我们从Simple框架网站上考虑这个非常基本的例子.XML输出是:

<example index="123">
   <text>Example message</text>
</example>
Run Code Online (Sandbox Code Playgroud)

如何指示序列化程序输出?

<example index="123"><text>Example message</text></example>

我检查了org.simpleframework.xml.stream.Style界面,但它似乎只能处理单个元素和属性名称而不是内容.

java whitespace simple-framework

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