无法使用 XML 分析从 XML 获取内部节点列表数据



我正在尝试多次获取 FL 标签,但是当我尝试内部节点列表时,它只获取第一项。有关更多信息,请参阅我的输出。这是我从 Web 服务获得的 XML 数据

<response uri="/ats/private/xml/JobOpenings/getRecords">
    <result>
        <JobOpenings>
            <row no="1">
                <FL val="JOBOPENINGID">
                    <![CDATA[ 100 ]]>
                </FL>
                <FL val="Published in website">
                    <![CDATA[ true ]]>
                </FL>
                <FL val="Modified by">
                    <![CDATA[ Admmin ]]>
                </FL>
                <FL val="Modified time">
                    <![CDATA[ Yesterday ]]>
                </FL>
            </row>
            <row no="2">
                <FL val="JOBOPENINGID">
                    <![CDATA[ 101 ]]>
                </FL>
                <FL val="Published in website">
                    <![CDATA[ true ]]>
                </FL>
                <FL val="Modified by">
                    <![CDATA[ Admin ]]>
                </FL>
                <FL val="Modified time">
                    <![CDATA[ 2 Days Ago ]]>
                </FL>
            </row>
            <row no="3">
                <FL val="JOBOPENINGID">
                    <![CDATA[ 102 ]]>
                </FL>
                <FL val="Published in website">
                    <![CDATA[ true ]]>
                </FL>
                <FL val="Modified by">
                    <![CDATA[ Admin ]]>
                </FL>
                <FL val="Modified time">
                    <![CDATA[ 2 Days Ago ]]>
                </FL>
            </row>
        <JobOpenings>
    <result>
</response>

这是我在活动中使用的代码

public class AndroidXMLParsingActivity extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(AppConfig.URL); // getting XML
        Document doc = parser.getDomElement(xml); // getting DOM element
        NodeList nodeList = doc.getElementsByTagName("row");
        for (int i = 0; i < nodeList.getLength(); i++) {
            Node node = nodeList.item(i);
            Element playlistElement = (Element) node;
            NodeList title = playlistElement.getElementsByTagName("FL");
            for (int kl = 0; kl < title.getLength(); kl++) {
                if (title.item(0).getChildNodes().item(0) != null) {
                    Element nameElement = (Element) title.item(0);
                    title = nameElement.getChildNodes();
                    Log.v("name===>", ((Node) title.item(0)).getNodeValue());
                }
            }
        }
    }
}

这是输出:

12-04 15:56:08.694: V/name===>(3918): JOBOPENINGID  100
12-04 15:56:08.694: V/name===>(3918): JOBOPENINGID  101
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID  102
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID  103
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID  107
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID  108
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID  118
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID  200

请帮帮我...

为什么不使用 XmlPullParser 来解析 XML?我从未使用过您的版本,但在我看来,XmlPullParser会做得更好,因为您告诉它专注于START_TAG(例如),然后写下您想要找到的标签的名称(在您的示例中为 FL)。

XPP要做的是,他将通读整个XML文档并搜索给定的START_TAG。一旦找到,您就可以在switch箱内用它做任何您想做的事情。

可能是

你在循环中覆盖标题:

if (title.item(0).getChildNodes().item(0) != null) {
   Log.v("name===>", ((Node) title.item(0).getChildNodes()).getNodeValue());
}

相关内容

  • 没有找到相关文章

最新更新