我正在解析一些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/>
现在我正在使用XMLPullParser及其工作,除了在get文本区域。
所以在获取文本的情况下我有这个:
case XmlResourceParser.TEXT:
itemsArray.add(xmlData.getText());
Log.i(TAG, "a"+xmlData.getText()+"b");
break;
所以它添加了项目Plain Bagel和Cheese Bagel很棒,但是在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
困惑我??
答案 0 :(得分:1)
你应该修剪文字。因为解析器为您提供了带空格的字符串,并为标记之间的每个字符串提供了\ n的字符串
case XmlResourceParser.TEXT:
if (xmlData.getText().trim().length() > 0)
{
itemsArray.add(xmlData.getText());
Log.i(TAG, "a"+xmlData.getText()+"b");
}
break;
答案 1 :(得分:0)
你可以这样:
if (xmlData.getText().trim().length > 0) {...