大写xml元素的第一个字母

时间:2012-04-01 21:24:51

标签: android string nodes capitalization

我是新手所以请耐心等待。 我有以下代码检索节点及其罚款。我试图让“状态”节点让它的第一个字母大写,虽然收效甚微,但它会强行关闭。

我所做的是将元素转换为字符串。我发现我可以使用所有元素'e'的大写代码,但我宁愿用它来表示状态。 为什么要逼近? 有人可以帮帮我吗?

NodeList nodes = doc.getElementsByTagName("line");

    for (int i = 0; i < nodes.getLength(); i++) {                           
        HashMap<String, String> map = new HashMap<String, String>();    

        Element e = (Element)nodes.item(i);

        map.put("id", XMLFunctions.getValue(e, "id"));
        map.put("name", XMLFunctions.getValue(e, "name"));
        map.put("status", XMLFunctions.getValue(e, "status"));
        map.put("message", XMLFunctions.getValue(e, "message"));

        mylist.add(map);

//element to string
        Document document = e.getOwnerDocument();
        DOMImplementationLS domImplLS = (DOMImplementationLS) document
            .getImplementation();
        LSSerializer serializer = domImplLS.createLSSerializer();
        String str = serializer.writeToString(e);

//capitalization
        if (str.length() <= 1) {
            str = str.toLowerCase();
        } else {
            str = str.substring(0, 1).toLowerCase() + str.substring(1);
        }

2 个答案:

答案 0 :(得分:0)

试试这个,

str = str.substring(0, 1).toLowerCase().concat(str.substring(1));

答案 1 :(得分:0)

我使用以下代码解决了这个问题:

public static String getValue(Element item, String str)  {      


        NodeList n = item.getElementsByTagName(str);

              char[] chars = XMLFunctions.getElementValue(n.item(0)).toLowerCase().toCharArray();
              boolean found = false;
              for (int i = 0; i < chars.length; i++) {
                if (!found && Character.isLetter(chars[i])) {
                  chars[i] = Character.toUpperCase(chars[i]);
                  found = true;
                } else if (Character.isWhitespace(chars[i]) || chars[i]=='.' || chars[i]=='\'') { // You can add other chars here
                  found = false;
                }
              }

              return String.valueOf(chars);