gpt4 book ai didi

java - xsl 中枚举的值

转载 作者:行者123 更新时间:2023-12-05 07:55:59 25 4
gpt4 key购买 nike

我正在使用 java,我得到了一个枚举

public enum MyEnum {

A("description of A"),
B("description of B");

private String description;

MyEnum(String description) {
this.description = description;
}

@Override
public String toString() {
return getBeschreibung();
}

public String getBeschreibung() {
return beschreibung;
}

}

此外,我得到了一个包含以下成员的类:

@XmlAccessorType(XmlAccessType.FIELD)
public class SomeValue {

@XmlEnumValue(value = "myEnum")
protected MyEnum myEnum;

}

分别用getter和setter。我得到了一个生成的 xml 文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<someValue>
<myEnum>A</myEnum>
</someValue>

我的 xsl 如下所示:

<xsl:for-each select="someValue">
<td>
<xsl:value-of select="myEnum" />
</td>
</xsl:for-each>

我想要的不是“A”,而是“A 的描述”。你能告诉我如何在我的 xsl 文件中实现这个吗?有什么方法可以读取枚举的值吗?

最佳答案

我遇到了同样的问题并找到了这个问题,但不幸的是没有答案。然而,在进一步挖掘之后,我找到了适合自己的解决方案。 5 年后回答问题有点太晚了,但希望如果有人再次偶然发现它,他们可能会发现它有帮助 -

首先,在您的 xsl 中导入您的 Enum 类 -

<xsl:stylesheet xmlns:myEnum="xalan://path.to.your.package.MyEnum"/>

然后你需要在MyEmum类中写一个静态方法,它将Enum作为值并return Enum描述

public String getDescription() {
return description;
}

public static String getEnumDescription(String enumVal) {
return getEnumFromString(enumVal).getDescription();
}

private static MyEnum getEnumFromString(String enumVal) {
for (MyEnum enum : MyEnum.values()) {
if (enum.name() == enumVal) {
return enum;
}
}

throw new IllegalArgumentException();
}

然后可以直接调用静态getEnumDescription方法-

<td>
<xsl:value-of select="myEnum:getEnumDescription(myEnum)" />
</td>

关于java - xsl 中枚举的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28985441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com