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