2011-05-27 44 views
0
List alma = new ArrayList(); 
alma.add(new Object[] { "alma", "korte" }); 
alma.add(new Object[] { "alma2", "korte2" }); 
alma.add(new Object[] { "alma3", "korte3" }); 
JXPathContext context = JXPathContext.newContext(alma); 
List result = context.selectNodes("????????"); 
System.out.println(result); 

所以基本上我應該怎麼寫成問號的地方,看到下面的輸出:如何使用jxpath獲取列表中對象數組的第一個元素?

[alma,alma2,alma3] 
+0

你能p你的數組列表中的一些容器對象? – 2011-05-27 14:00:57

回答

1

我不認爲這是可能的。你需要把你的數據放在某種容器對象中。例如,

public class AlmaContainer { 
    List<AlmaObject> alma = new ArrayList<AlmaObject>(); 
} 

public class AlmaObject { 
    String name; 
    String value; 
    AlmaObject(name, value) { 
    this.name=name 
    this.value= value 
    } 
} 

然後你就可以使用下面的表達式:

context.selectNodes("alma/@name"); 
0

這是不可思議的,但如果你不能改變你的初始結構,你可以在2個步驟做:

Iterator<Object> iter = context.iterate("."); 
while(iter.hasNext()){ 
    Object o=iter.next(); 
    JXPathContext context2 = JXPathContext.newContext(o); 
    System.out.println(context2.getValue(".[1]")); 
} 

輸出:

alma 
alma2 
alma3 
相關問題