2011-04-28 198 views
1

我正在尝试检索父节点和子节点的属性。我试图用 showed here的例子,但它给我“不能应用于给定类型”。XML子节点属性

static class Entry { 
    final String ED,Home, Shift, Detail; 
    Entry(String ED,String Home, String Shift,String Detail) { 
     this.ED= ED; 
     this.Home = Home; 
     this.Shift = Shift; 
     this.Detail = Detail; 
     Node entryNode = entriesNodeList.item(i); 
     entries.add(new Entry(
     evalString(entryNode, "Home/@name"), 
     evalString(entryNode, "Home/@starDate"), 
     evalString(entryNode, "Home/@endDate"), 
     evalString(entryNode, "Home/Shift/@employeeID"), 
     evalString(entryNode, "Home/Shift/@start"), 
     evalString(entryNode, "Home/Shift/@end"), 
     evalString(entryNode, "Home/Shift/Detail/@start"), 
     evalString(entryNode, "Home/Shift/Detail/@end") 

XML文件:

`<ED CS="BLUE" Timestamp="2011-03-23 13:57:01" xmlns:js="TEST/js"> 
<Home name="57511" startDate="2011-03-12" endDate="2011-03-18"> 
<Shift ID="1170108" start="2011-03-12 0718" end="2011-03-12 1636" > 
<Detail type="Meal" start="2011-03-12 1218" end="2011-03-12 1248" /> 
</Shift> 
</ED>` 

回答

0

为类“条目”只需要4个字符串参数和你正在尝试与调用它的构造函数。该类也似乎只有4个领域。也许你会想实际引入复杂的ED类(包括字段CS,时间戳,Home和Shift),Home,Shift和Detail,它们将把你的XML文件表示为Java对象层次结构。

+0

帕特里克 - 这是有道理的,当我评论了评估字符串部分的四个额外的行我得到一个结果。我会按照你的建议研究复杂的类。 – Alex 2011-04-28 19:56:48

+0

我更新了consractor和“Entry”类以接受8个字段。现在它返回所有8个预期值。但它只返回一行(该文件有几行)。该行只返回一行。 for(Entry entry:entries){System.out.println(entry); } – Alex 2011-04-28 21:09:07