Java XML将数据添加到ArrayList<;字符串>;

Java XML将数据添加到ArrayList<;字符串>;,java,xml,Java,Xml,我正在解析一些xml,现在我正在尝试获取一些节点的文本值。这是xml <menu> <day name="monday"> <meal name="BREAKFAST"> <counter name="Bread"> <dish> <name>Plain Bagel</name> </dish>

我正在解析一些xml,现在我正在尝试获取一些节点的文本值。这是xml

<menu>
<day name="monday">
    <meal name="BREAKFAST">
        <counter name="Bread">
           <dish>
               <name>Plain Bagel</name>
           </dish>
        <counter/>
    <meal/>
<day/>
<day name="tuesday">
    <meal name="LUNCH">
        <counter name="Other">
           <dish>
               <name>Cheese Bagel</name>
           </dish>
        <counter/>
    <meal/>
<day/>
因此,它添加了“普通百吉饼”和“奶酪百吉饼”,非常棒,但在onProgressUpdate方法中,当我记录结果时,我看到:

[
,
,
, Plain Bagel,
,
,
, Cheese Bagel]
我认为这些只是\n个字符,所以我尝试了这个方法,但仍然得到了相同的结果

if (!xmlData.getText().equals("\n")) {...
那么,我怎样才能摆脱这些空行或其他什么呢

提前谢谢你的帮助

当我记录这个的时候

Log.i(TAG, xmlData.getText().length() + "");
Log.i(TAG, xmlData.getText());
结果我得到了这个

4
12-15 06:28:58.868    5849-5880/com.spencer.ueat I/DiningItemsActivity﹕ [ 12-15 06:28:58.868  5849: 5880 I/DiningItemsActivity ]
    5
12-15 06:28:58.868    5849-5880/com.spencer.ueat I/DiningItemsActivity﹕ [ 12-15 06:28:58.868  5849: 5880 I/DiningItemsActivity ]
    1
12-15 06:28:58.868    5849-5880/com.spencer.ueat I/DiningItemsActivity﹕ [ 12-15 06:28:58.868  5849: 5880 I/DiningItemsActivity ]
    34
12-15 06:28:58.869    5849-5880/com.spencer.ueat I/DiningItemsActivity﹕ Vegetable Samosa with Yogurt Sauce
12-15 06:28:58.869    5849-5880/com.spencer.ueat I/DiningItemsActivity﹕ 5

让我感到困惑???

你可以这样做:

if (xmlData.getText().trim().length > 0) {...

你应该修剪一下文本。因为解析器为您提供带空格的字符串,并且为标记之间的每个字符串提供带\n的字符串

case XmlResourceParser.TEXT:
if (xmlData.getText().trim().length() > 0) 
{
   itemsArray.add(xmlData.getText());
   Log.i(TAG, "a"+xmlData.getText()+"b");
}
break;

你有没有试着得到每个元素的长度,看看它是什么?没有试过,现在是一个合乎逻辑的下一站对不起,太晚了,请看长度的加法,你能解释一下
itemsArray.filter
more吗?但是你知道为什么要添加这些空格和\n吗?为什么不用十六进制写出所有数据,看看它们是什么?你得到的是标记之间的所有文本。我的意思是,例如,盘子和柜台标签。这些标记之间有空间,也有换行符。
case XmlResourceParser.TEXT:
if (xmlData.getText().trim().length() > 0) 
{
   itemsArray.add(xmlData.getText());
   Log.i(TAG, "a"+xmlData.getText()+"b");
}
break;