【问题标题】:Android read xml errorAndroid读取xml错误
【发布时间】:2012-12-06 17:23:41
【问题描述】:

我正在尝试从 android 应用程序读取 xml 文件,但 xml 文件正在从 php 立即生成(因此文件是 .php)

当我从 java 询问该 url 时,我收到此错误:URI 中的预期文件方案:“http://someserver.com/foo/bar/Myuri.php”

try {
          File file = new File(new URI("http://someserver.com/foo/bar/Myuri.php"));
          DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
          DocumentBuilder db = dbf.newDocumentBuilder();
          Document doc = db.parse(file);
          doc.getDocumentElement().normalize();
          System.out.println("Root element " + doc.getDocumentElement().getNodeName());
          NodeList nodeLst = doc.getElementsByTagName("employee");
          //System.out.println("Information of all employees");

          for (int s = 0; s < nodeLst.getLength(); s++) {

            Node fstNode = nodeLst.item(s);

            if (fstNode.getNodeType() == Node.ELEMENT_NODE) {

                   Element fstElmnt = (Element) fstNode;
              NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("name");
              Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
              NodeList fstNm = fstNmElmnt.getChildNodes();
              System.out.println("Name : "  + ((Node) fstNm.item(0)).getNodeValue());
              NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("lastname");
              Element lstNmElmnt = (Element) lstNmElmntLst.item(0);
              NodeList lstNm = lstNmElmnt.getChildNodes();
              System.out.println("Last Name : " + ((Node) lstNm.item(0)).getNodeValue());
            }

          }
          } catch (Exception e) {
            alertDialog.setMessage(e.getMessage());
            alertDialog.show();
          }

【问题讨论】:

    标签: java php android xml uri


    【解决方案1】:

    编辑:好的,现在我们有了一些代码,让我们看看重要的一行:

    File file = new File(new URI("http://someserver.com/foo/bar/Myuri.php"));
    

    File 类用于文件。不是任意的 URI。它期望 URI 中有一个 file 方案,例如file://.

    基本上,您不能使用File 从网络上获取内容。那不是它的目的。使用 HTTP 库,例如HttpClient.

    【讨论】:

    • 您是否也在 php 文件中发送标题? header("内容类型: text/xml; charset=utf-8");
    • @Jon Skeet,是的,这就是我通过它的方式,我只是不介意提及它!
    • @vodich 当然我的标题是正确的,虽然我在我的 Windows 手机应用程序上使用了相同的 php,它工作正常
    • @DimitrisSapikas:现在你已经编辑了你的问题,让它看起来像你有一个错误,而你肯定没有得到那个 exact 错误消息。请显示 exact 错误,最好显示一些代码。否则,我们只是在猜测,给出误导性信息。请阅读tinyurl.com/so-list
    • @DimitrisSapikas:这根本没有“当然”。您几乎没有向我们提供任何信息,而且很明显出了点错误。如果您不希望人们提出疯狂的猜测,您需要向我们提供更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    相关资源
    最近更新 更多