Android DOM对象到字符串

Android DOM对象到字符串,android,xml,dom,domparser,Android,Xml,Dom,Domparser,我基本上被DOM对象和我想要的数据卡住了,我正试图将其输出到一个字符串中。下面是我用来解析xml文件的代码: public ORGRTools insertUserNameAndPassword(String userName, String password) { try { DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance(); docBuilder = factory

我基本上被DOM对象和我想要的数据卡住了,我正试图将其输出到一个字符串中。下面是我用来解析xml文件的代码:

public ORGRTools insertUserNameAndPassword(String userName, String password)
{
    try {
        DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
        docBuilder = factory.newDocumentBuilder();
        dom = docBuilder.parse (new File("/mnt/sdcard/Commands.xml"));
        NodeList items = dom.getElementsByTagName("login");
        for (int i = 0; i < items.getLength(); i++) {
                    Node item = items.item(i);
                    NodeList properties = item.getChildNodes();
                    for (int j = 0; j < properties.getLength(); j++) {
                        Node property = properties.item(j);
                        String name = property.getNodeName();
                        if (name.equalsIgnoreCase("userName")) {
                            property.getFirstChild().setNodeValue(userName);
                        }
                        if (name.equalsIgnoreCase("password")) {
                            property.getFirstChild().setNodeValue(password);
                        }
                    }
        }
    } catch (SAXException e) {
        // TODO Auto-generated catch block
        //invalid character in xml
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ParserConfigurationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return this;
}
但是,我得到了以下异常(参见注释)。有人知道发生了什么事吗?为什么转换为字符串失败了?我已经被困在这几个小时了,所以任何帮助都是好的。任何API级别都可以

谢谢! --编辑-- 这是我试图处理的结构。基本上,我们的想法是将其中一个模型与.apk一起安装,并让这些模型与服务器通信。因此,我需要填写用户凭证数据:

<commands>
<login>
    <userName>itemstr</userName>
    <password>itemstr</password>
</login>
<analyse>
    <imageName>itemstr</imageName>
    <imageHeight>itemnum</imageHeight>
    <imageWidth>itemnum</imageWidth>
    <recordID>itemstr</recordID>
</analyse>
<retrieve>
    <record>itemnum</record>
</retrieve>

itemstr
itemstr
itemstr
itemnum
itemnum
itemstr
itemnum

参考简单xml框架,将xml序列化到对象将更容易

下面是一个例子来解释它的用法

序列化简单对象 为了将对象序列化为XML,必须在该对象中放置一系列注释。这些注释告诉持久化程序应该如何序列化对象。例如,以下面所示的类为例。这里有三种不同的注释,一种用于描述根元素的名称,一种用于描述XML消息元素,以及id属性的最终注释

@Root
public class Example {

   @Element
   private String text;

   @Attribute
   private int index;

   public Example() {
      super();
   }  

   public Example(String text, int index) {
      this.text = text;
      this.index = index;
   }

   public String getMessage() {
      return text;
   }

   public int getId() {
      return index;
   }
}
要序列化上述对象的实例,需要一个持久化程序。然后给持久化对象一个带注释对象的实例和一个输出结果,在本例中是一个文件。persister对象还可以使用其他输出格式

Serializer serializer = new Persister();
Example example = new Example("Example message", 123);
File result = new File("example.xml");

serializer.write(example, result);

希望这能回答您的问题。

您是否尝试在您的下添加另一个
捕获块
,以捕获其他异常并查看它是否打印堆栈跟踪?您好,iturki,我在捕获中添加了异常,但调试器仍然跳过它。还有其他想法吗?然后试试这个:将
null返回
移到catch块之外。我不喜欢返回空值。这可能是问题的原因。考虑返回一个空字符串或一个用户定义的字符串。Siranjeevi,我修改了我的问题,包括我要处理的数据模型。我想我同意你的看法,我需要使用更简单的xml框架。你有很好的经验吗?
Serializer serializer = new Persister();
Example example = new Example("Example message", 123);
File result = new File("example.xml");

serializer.write(example, result);