[英]How to convert a XML to a String and pass the same to a java code in web service?
[英]Convert String from a XML to Java Code
我的實際解決方案是向哈希表添加值
private HashMap<String,Sexpr> contexte = new HashMap<String,Sexpr>();
...
this.putVariable("car",Car.CAR);
this.putVariable("cdr",Cdr.CDR);
我想通過使用SAX從XML執行相同的操作
<root>
<!-- Les types prédéfinis -->
<type symbole="car" type="expr" class="Car.CAR"/>
<type symbole="cdr" type="expr" class="Cdr.CDR"/>
</root>
我可以通過使用attribute.getValue(i).toString()從處理程序(使用Sax)獲取這些值,我希望將訪問我的類Car或Cdr的請求的第二部分的字符串轉換為Java代碼在這個例子中
X.putVariable(attributes.getValue(0).toString, attributes.getValue(2).? );
謝謝您的幫助
因此,據我了解,您想將“ Car.CAR”字符串映射到Car.CAR java類成員。
會員是什么樣的? 真的需要會員嗎? 由於您只是擁有與該類同名的名稱,並且它似乎是一個常量(基於大寫的Java約定),我懷疑不是。
如果只想存儲類引用,則可以使用Class.forName(String cls):Class方法。 該類對象可以存儲在HashMap中。 例:
Class cls = Class.forName("Car");
還要檢查類似的問題,是否就是您想要的: java類字符串
看來您將不得不使用反射來檢索在“ class”屬性中命名的靜態成員( 在Java Reflection API中稱為Field
)。 例如(未測試):
public static Object lookupStaticMember(String name) /* throws many */ {
String classField[] = name.split("\\.");
Class<?> klass = Class.forName(classField[0]);
Field field = klass.getField(classField[1]);
int mods = field.getModifiers();
if ((Modifier.PUBLIC & mods == 0) || (Modifier.STATIC & mods == 0)) {
throw new IllegalArgumentException("field " + name + " is not public static");
}
return field.get(klass);
}
現在您可以將其用作:
X.putVariable(attributes.getValue(0).toString(),
(Sexpr) lookupStaticMember(attributes.getValue(2).toString()));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.