1

サーバーの IP 構成を Android 内部ストレージの /Simulate/Configuration.xml の xml ファイルに保存しました。

構成.xml

<?xml version="1.0"?>

<IPconfig>

<ipAddress>172.**.***.***</ipAddress>
<port>5000</port>

</IPconfig>

IP アドレスとポート番号にアクセスするためのコード

try {
File sdcard = Environment.getExternalStorageDirectory ();
File FXmlFile = new File (sdcard, "/ Simulate / Configuration.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement (). normalize ();
NodeList nlist = doc.getElementsByTagName ("IPconfig");
for (int temp = 0; temp <nList.getLength (); temp + +) {
Node nNode = nList.item(temp);
if (nNode.getNodeType () == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
SERVERIP= eElement.getAttribute("ipAddress");
System.out.println ("server ip:" + SERVERIP);
SERVERPORT= eElement.getAttribute("port");
System.out.println ("Server port:" + ServerPort);
}
}
}catch (Exception e) {
            e.printStackTrace();
            }

SERVERIP と SERVERPORT を印刷すると、両方とも null が返されます。xml から IP アドレスとポートの値を取得するにはどうすればよいですか? どんな助けでも大歓迎です。また、サーバーの ipconfig を指定するより良い方法がある場合。

4

2 に答える 2

0
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;


    public class Handler extends DefaultHandler
    {
public String ipAddress;
public String port;
public StringBuffer  sbBuffer;

@Override
public void startElement(String uri, String localName, String qName,
        Attributes attributes) throws SAXException {
    // TODO Auto-generated method stub
    sbBuffer = new StringBuffer();
}

@Override
public void endElement(String uri, String localName, String qName)
        throws SAXException {
    if(localName.equalsIgnoreCase("ipAddress"))
        ipAddress = sbBuffer.toString();
    else if(localName.equalsIgnoreCase("port"))
        port = sbBuffer.toString();
}

public void characters(char[] ch, int start, int length) throws SAXException
{
    sbBuffer.append(ch,start,length);
}


    }
于 2013-02-27T10:45:52.577 に答える
0

属性ではなく要素を使用したというAndrey Voitenkovのヒントのために回答しました:)

********EDIT*******
SERVERIP= eElement.getElementsByTagName("ipAddress").item(0).getTextContent();
System.out.println("server    ip:"+SERVERIP);
SERVERPORT= eElement.getElementsByTagName("port").item(0).getTextContent();
System.out.println("server port:"+SERVERPORT);
于 2013-02-28T08:38:07.450 に答える