【问题标题】:XML Child node attributeXML 子节点属性
【发布时间】:2011-04-28 18:58:26
【问题描述】:

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

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>`

【问题讨论】:

    标签: java


    【解决方案1】:

    “Entry”类的构造函数只接受 4 个字符串参数,而您正试图用它来调用它。该类似乎也只包含 4 个字段。也许您实际上想要为 ED(包含 CS、Timestamp、Home 和 Shift 字段)、Home、Shift 和 Detail 引入复杂的类,它们会将您的 xml 文件表示为 Java 对象层次结构。

    【讨论】:

    • Patrick - 这是有道理的,当我从评估字符串部分注释掉四行额外的行时,我得到了一个结果。我会按照你的建议研究复杂的类。
    • 我更新了承包商和“Entry”类以接受 8 个字段。现在它返回所有 8 个预期值。但它只返回一行(文件有几行)。此行仅返回一行。对于(条目条目:条目){ System.out.println(条目); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多