Java Xmlparser.getText()提供空值

Java Xmlparser.getText()提供空值,java,android,xml,android-xmlpullparser,Java,Android,Xml,Android Xmlpullparser,我试图从一个预设的xml文件中提取值,当我试图检查值是什么时,我总是得到空值 if (pulled.equals("preset")) { presetName = xmlParser.getAttributeValue(null,"name"); Log.d(TAG, presetName + " = " + xmlParser.getText()); } 这是我从中提取值的xml <?xml version="1.0" encoding="utf-8"?> &l

我试图从一个预设的xml文件中提取值,当我试图检查值是什么时,我总是得到空值

if (pulled.equals("preset")) {
    presetName = xmlParser.getAttributeValue(null,"name");
    Log.d(TAG, presetName + " = " + xmlParser.getText());
}
这是我从中提取值的xml

<?xml version="1.0" encoding="utf-8"?>
<sports>
    <sport name="Baseball" paid="false">
        <preset name="Pitching Mound">726.0</preset>
        <preset name="Base Distance">1080.0</preset>
    </sport>
    <sport name="Basketball" paid="false">
        <preset name="NBA Free Throw Line">181.08</preset>
        <preset name="NBA 3pt Line">265.8</preset>
    </sport>
    <sport name="Cricket" paid="true">
        <preset name="Cricket Pitch">2012.0</preset>
        <preset name="Testing">0.8</preset>
    </sport>
</sports>

726
1080
181.08
265.8
2012
0.8

我做错什么了吗?

在XmlPullParser api上,getText()方法具有以下描述:

以字符串形式返回当前事件的文本内容。价值 返回的值取决于当前事件类型,例如 文本事件它是元素内容(这是next()时的典型情况) (已使用)。有关详细说明,请参见nextToken()的说明
不同类型事件的可能返回值

注意:对于实体_REF,此方法返回实体 替换文本(如果不可用,则为空)。这是唯一的情况 其中getText()和getTextCharacters()返回不同的值

因此,基于此描述,首先必须检查当前xml节点是否为文本,以便getText()不返回null

if (pulled.equals("preset")) {
    presetName = xmlParser.getAttributeValue(null,"name");
    if (xmlParser.getEventType() == XmlPullParser.TEXT) {
       Log.d(TAG, presetName + " = " + xmlParser.getText());
    }
}
希望这能有所帮助,

我以前回答过,它应该会起作用