来自xml的解析字符串数

时间:2013-08-16 20:03:51

标签: java android xml arrays string

我有一个小问题:)。我的问题是,我解析xml并通过每个标签制作解析新片段。 。现在我的问题: 通过创建Tabs,我必须给FragmentPagerAdapter他必须创建的标签数量。我知道为什么我可以给他们没有数组列表。那里的代码说明他必须创建多少标签。非常它锁定像 public final String [] titles = {“123”,“123”};但现在我将它解析为没有数组的字符串。

@Override
        public int getCount() {
            return Names.length();
        }

但这对于Strings来说是不可能的,所以我的问题是任何人都可以告诉我一个解决方案,我可以从他解析的xml中给他一些标签。

xml:

<rooms>
<room>
        <roomname>Wohnzimmer</roomname>
        <devices>
            <device>
                <deviceid>1</deviceid>
                <devicename>some name</devicename>
                <action1>3</action1>
                <action2>4</action2>
                <devicetype>some name</devicetype>
                <text1>1</text1>
                <text2>2</text2>
            </device>
        </devices>
    </room>
        <room>
        <roomname>Wohnzimmer</roomname>
        <devices>
            <device>
                <deviceid>1</deviceid>
                <devicename>some name</devicename>
                <action1>3</action1>
                <action2>4</action2>
                <devicetype>some name</devicetype>
                <text1>1</text1>
                <text2>2</text2>
            </device>
        </devices>
    </room>
</rooms>

我需要孩子们有类别房间的xml解析器解析(来自标签室的孩子)。我想计算房间标签那里的标签。在这种情况下,它是2。

我的代码现在看起来如此:

@Override
        public int getCount() {
            try {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document dom = db.parse("employees.xml");
            Element element = (Element) dom.getElementsByTagName("app_type").item(0);
            NodeList nodes = dom.getElementsByTagName("tagName");
            int count = nodes.getLength();      
        }
        catch (ParserConfigurationException pce) {
        pce.printStackTrace();
        }
        catch (IOException ioe) {
        ioe.printStackTrace();
        }
        catch (SAXException sae) {
        sae.printStackTrace();
        }
            return count;
        }

但我得到一个错误,他无法解决数量。

1 个答案:

答案 0 :(得分:0)

我理解你有一个xml并且你正在寻找从那个xml解析几个标签,你可以使用XML java API

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document dom = db.parse("employees.xml");
Element element = (Element) dom.getElementsByTagName("app_type").item(0);
NodeList nodes = dom.getElementsByTagName('"tagName");
int count = nodes.getLength();

不要忘记把它放在try catch块中,因为这个API会抛出异常。

干杯!!