【问题标题】:number´s of parse strings from xml来自 xml 的解析字符串的数量
【发布时间】:2013-08-16 20:03:50
【问题描述】:

我有一个小问题:)。我的问题是,我解析一个 xml 并通过每个标签解析一个新片段。 .但现在我的问题: 通过创建标签,我必须给FragmentPagerAdapter他必须创建的标签数量。我不知道为什么我可以在没有数组列表的情况下给他它们。那是那里的代码说他必须创建多少标签。通常它像锁定一样 公共最终字符串 [] 标题 = {"123", "123"};但现在我将其解析为没有数组的字符串。

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

但这不适用于字符串,所以任何人都可以告诉我一个解决方案,我可以给他一些他解析的 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;
        }

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

【问题讨论】:

  • 你应该更好地解释你的问题,我读了 3 次,仍然没有得到确切的问题。
  • 还显示更多代码和您正在解析的 xml
  • 我想计算房间内的标签,在这种情况下它是 2

标签: java android xml arrays string


【解决方案1】:

据我所知,您有一个 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 会抛出异常。

干杯!!

【讨论】:

  • 我想计算房间标签的标签
  • @johanfra - 不确定我是否理解但尝试过,请参阅编辑添加了另一行以获取特定标记名的计数
  • @johanfra.. 太棒了!!
猜你喜欢
  • 1970-01-01
  • 2010-10-13
  • 2012-11-12
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
相关资源
最近更新 更多