当前位置: 首页 > 面试题库 >

在Java SimpleXML库中设置路径时,如何使用XML元素的值?

毛博
2023-03-14
问题内容

我有以下XML:

<rdr>
  <details>
    <detail>
        <name>version</name>
        <value>15.0</value>
    </detail>
    <detail>
        <name>resolution</name>
        <value>1080X1920</value>
    </detail>
  </details>
</rdr>

我将其编组到以下Java bean中:

import org.simpleframework.xml.Element;
import org.simpleframework.xml.Path;
import org.simpleframework.xml.Root;

@Root(name = "rdr", strict = false)
public class XmlBean {

@Path("details/detail[1]")
@Element(name = "value")
private String version;

@Path("details/detail[2]")
@Element(name = "value")
private String resolution;

public String getVersion() {
    return version;
}

public void setVersion(String version) {
    this.version = version;
}

public String getResolution() {
    return resolution;
}

public void setResolution(String resolution) {
    this.resolution = resolution;
}

}

我正在使用2.6.6版的简单XML实现此目的:http :
//simple.sourceforge.net/

但是,我想做的是使用XPath中的name元素。例如,我不是使用路径“ details / detail [1]”,而是使用“ details /
detail [name =
version]”。这不起作用,并且我得到org.simpleframework.xml.core.PathException:返回的路径异常无效索引。我已尝试将周围的版本替换为’,但无济于事。根据我对XPath的了解,这是正确的语法:http
:
//www.w3schools.com/xpath/xpath_syntax.asp
有人可以确认这看起来正确吗?

我已经研究了简单的xml库的源代码,它在不使用第三方库的情况下自行处理XPath处理。我知道为什么它不起作用,因为它只接受数字,并且会为所有非数字字符抛出该异常。

我很想修复该库,但是怀疑我做错了什么,可能还有其他应使用的注释或其他语法。

是否可以使用另一个注释来实现我要执行的操作?是否可以使用Simple做我想做的事情?


问题答案:

顺便说一句,我通过编写自己的库来解决此问题,该库可从此处获得:https : //github.com/aembleton/XML-
Marshaller

这非常简单和基本,但是当时解决了这个问题。



 类似资料:
  • 问题内容: 我正在尝试制作Java RMI客户端/服务器应用程序。我在启动应用程序服务器端时遇到问题,因为在我尝试启动应用程序服务器端时,在调用Registry.bind()方法期间,它一直运行在 ClassNotFoundException 中。 我从这里的简单教程开始:http : //docs.oracle.com/javase/1.5.0/docs/guide/rmi/hello/hell

  • 问题内容: 我有很多jar文件要添加到我的类路径中,因此,每次编译Java文件时,都会得到如下命令: 我尝试使用: 然后: 但是根本没有添加jar:由于缺少jar,我得到了错误信息…谢谢 问题答案: 也许您想尝试使用Maven来构建您的应用程序?它真的很容易设置,并且消除了依赖管理的所有问题。 同样从Java 6开始,您可以在类路径中使用通配符: set CLASSPATH = my_libs \

  • 问题内容: 我正在使用XPath从python中的lxml中搜索HTML文档。如何获得通往某个特定元素的路径?这是ruby nokogiri的示例: 打印例如’ / html / body / div / div [1] / div [1] / p / text()[1] ‘,这是我想在python中获取的字符串。 问题答案: 从ElementTree对象使用。 版画

  • 我已经在spring boot中使用log4j2完成了日志记录。我想从属性文件动态设置日志文件路径。我已经为此编写了下面的代码,但它工作得不好。 我的财产档案。属性代码如下所示 和我的日志文件log4j2。xml代码如下所示

  • 如何在Core 2.0的ConfigurationBuilder中设置基本路径。 我在谷歌上搜索并发现了这个问题,这个问题来自微软的文档,还有2.0的在线文档,但它们似乎使用的是微软的 。在Core 2.0中有没有一种新的实现方法? 应用设置。json 更新:除了添加微软。扩展。配置。文件扩展如下所示设置我也需要添加微软。扩展。配置。Json来获取扩展名。

  • 问题内容: 有人可以告诉我在NetBeans中在哪里以及如何设置类路径吗?我想添加一个.jar文件。 问题答案: 用鼠标右键单击你的项目。 选择Properties。 在左侧单击Libraries。 下Compile tab-单击Add Jar/Folder按钮。 要么 扩展你的项目。 右键单击Libraries。 选择Add Jar/Folder。