如何在android中处理带有空标记的xml?喜欢这个<pager>

时间:2016-02-17 17:37:52

标签: android xml android-studio xml-parsing xmlpullparser

所以我在我读取的assests文件夹中有一个文件。 我正在阅读它没有错误。但这是xml文件中记录或项目的示例。 (我拿出了真正的价值并把假数据放进去了)

  <record>
    <group> MYGROU </group>
    <name> Person </name>
    <title> (MG1217) LEADER </title>
    <businessphone> 111-111-1111 </businessphone>
    <pager/>
    <email> email.org </email>
    <managername> BOSS </managername>
    <managerbusinessphone> 1919191919 </managerbusinessphone>
    <managerpager/>
    <manageremail> email.org </manageremail>
</record>

无论如何,除了像Pager和managerpager这样的情况之外,我创建了一个对象并正确读取所有内容。这是读入的内容,或者我认为是从xml中读取的值。

V/value of pager after set Text﹕ [ 02-17 12:16:25.476 17462:17462 D/Activity ]
performCreate Call secproduct feature valuefalse

理想情况下,我想要做的是将Pager的值设置为N / A,因为xml中没有值。但我不知道如何解决这个问题,因为每当我解析它时,我并没有真正提取一个值。我试图取出我打印出来的那个字符串的子串,但我甚至不能接受它的子串。

以下是我如何拍摄子圈以及打印出来的内容

子串以及我如何在我创建的Textview(mOnCallPager)中将值设置为N / A.

 Log.v("substring value of pager ", item.getMpager().substring(0,5));

  if(item.getMpager().substring(0,2).equals(" ["))
    {
        mOnCallPager.setText("N/A");
    }
    else
        mOnCallPager.setText(item.getMpager());

打印出来的值

  02-17 12:29:43.516  22838-22838/com.example.jaimejahuey.novanthealthmobile V/substring value of pager﹕ [ 02-17 12:29:43.516 22838:22838 D/Activity ]
performCreate Call secproduct feature valuefalse

任何帮助都会有所帮助。 感谢

继承我对xml的解析。

                      switch (evenType)
                {
                    //make a new contact whenever the startag is record
                    case XmlPullParser.START_TAG:
                        if(tagname.equalsIgnoreCase("record"))
                        {
                            contact = new OnCallContact();
                        }
                        break;


                    case XmlPullParser.TEXT:
                        text = parser.getText();
                        break;



                    case XmlPullParser.END_TAG:
                        if(tagname.equalsIgnoreCase("record"))
                        {
                            contacts.add(contact);
                        }
                        else if (tagname.equalsIgnoreCase("group"))
                        {
                            contact.setMgroup(text);
                        }
                        else if (tagname.equalsIgnoreCase("name"))
                        {
                            contact.setMname(text);
                        }
                        else if (tagname.equalsIgnoreCase("title"))
                        {
                            contact.setMtitle(text);
                        }
                        else if (tagname.equalsIgnoreCase("businessphone"))
                        {
                            contact.setMbusinessPhone(text);
                        }
                        else if (tagname.equalsIgnoreCase("pager"))
                        {
                             contact.setMpager(text);
                        }
                        else if (tagname.equalsIgnoreCase("email"))
                        {
                            contact.setMemail(text);
                        }
                        else if (tagname.equalsIgnoreCase("managername"))
                        {
                            contact.setmManagerName(text);
                        }
                        else if (tagname.equalsIgnoreCase("managerbusinessphone"))
                        {
                            contact.setmManagerBusinessPhone(text);
                        }
                        else if (tagname.equalsIgnoreCase("managerpager"))
                        {
                            contact.setmManagerPager(text);
                        }
                        else if (tagname.equalsIgnoreCase("manageremail"))
                        {
                            contact.setmManagerEmail(text);
                        }
                        break;
                    default:
                        break;
                }
                evenType = parser.next();
            }

1 个答案:

答案 0 :(得分:0)

只是因为有人遇到过这个问题,它就是解析器会抓取的空白。我的长度是9。所以它只是一个空白。无论如何,如果你在获取值时没有得到null,那么你很可能像我一样抓住空白。 (每当阅读文本时修剪,这样空标签的长度为0,并做任何你需要做的空标签)