2011-09-21 196 views
0

我试图从这个XML中提取行标记中的文本值和大小值。从XML文件获取信息

<items> 
    <item> 
     <table> 
      <row text="foo" size="4"/> 
     </table> 
    </item> 
</items> 

我能得到的数值为这个XML:

<items> 
    <item> 
     <textbox text="foo"> 
    </item> 
</items> 

与此代码。

NodeList textbox = element.getElementsByTagName("textbox"); 
line = (Element) textbox.item(0); 
String textbox_text = line.getAttribute("text"); 

有人能告诉我该怎么办?

+0

Python会工作吗?我最近在做这样的事情。 – ThinkCode

+0

@ThinkCode Python?我正在研究Java? –

+1

使用XPath。在SO上有很多相同的问题:http://stackoverflow.com/search?q=[java]+Get+Information+from+XML+file – parsifal

回答

1
NodeList items = element.getElementsByTagName("items"); 
for(int i=0 i<items.getLength(); i++) 
{ 
    NodeList item = items.item(i).getElementsByTagName("item"); 
    for(int j=0 j<item.getLength(); j++) 
    { 
     NodeList table = item.item(j).getElementsByTagName("table"); 
     for(int k=0 i<table.getLength(); k++) 
     { 
      NodeList rows = table.item(k).getElementsByTagName("rows"); 
      for(int h=0 i<table.getLength(); h++) 
      { 
       rows.item(h).getAtribbute("text"); 
       rows.item(h).getAtribbute("size"); 
      } 
     } 
    } 
} 

类似的东西

+0

我没有考虑那个小部件标签 – fredcrs

+0

对不起,这是一个错字。我仍在尝试解决方案。 –

1

我想,

NodeList textbox = element.getElementsByTagName("row"); 
line = (Element) textbox.item(0); 
String textbox_text = line.getAttribute("text"); 
String textbox_size = line.getAttribute("size"); 

如果你想使用textbox_size为数字,你可能想将它转换为int。

如果此代码失败,很可能是由于看起来随机的标签使这个XML无效。