从 PHP 脚本获取和解释 XML 文件响应的最简单方法是啥? [复制]

     2023-02-24     196

关键词:

【中文标题】从 PHP 脚本获取和解释 XML 文件响应的最简单方法是啥? [复制]【英文标题】:Which is the easiest approach to get & interpret a XML file response from a PHP script? [duplicate]从 PHP 脚本获取和解释 XML 文件响应的最简单方法是什么? [复制] 【发布时间】:2012-03-31 18:38:13 【问题描述】:

可能重复:Best XML Parser for PHPUsing JAXB with Google Android

我需要在我的 Android 应用中添加一个简单的功能。

我必须连接到这个虚构的脚本:http://test/getMagazinesList.php

脚本会返回一个像这样的 XML 文件:

<magazines>
 <magazine title="APP 1" id="1">
  <description>Prueba real</description>
   <miniature>http://web/miniature.jpg</miniature>
 </magazine>
 <magazine title="APP 2" id="2">
  <description>Prueba real 2</description>
   <miniature>http://web/miniature2.jpg</miniature>
 </magazine>
 <magazine title="APP 3" id="3">
  <description>Prueba real 3</description>
   <miniature>http://web/miniature3.jpg</miniature>
 </magazine>
</magazines>

目标是将 XML 的所有信息存储在这些 MagazinePreview 对象的列表中:

public class MagazinePreview 
String title;
String id;
String description;
String miniatureUrl;
Bitmap miniature;
public MagazinePreview(String title, String id, String description,
        String miniatureUrl) 
    super();
    this.title = title;
    this.id = id;
    this.description = description;
    this.miniatureUrl = miniatureUrl;
       

连接到该 PHP 并获取 XML 并解释它以将信息存储在 MagazinePreview 类对象列表中的最简单方法是什么?

谢谢

【问题讨论】:

以及右侧相关部分中更多合适的副本。提问前请使用搜索功能。 Do your homework. 你也可以参考这里。 ***.com/questions/4624440/… @Pableras84 “最简单的方法”没有建设性。据我所知,OP 只是询问如何处理 XML,我们得到了任何语言的答案。 这里没有提及 PHP 【参考方案1】:

您可以为此使用Simple XML。

用这些注释装饰你的MagazinePreview 类:

public class MagazinePreview 

  @Attribute
  String title;
  @Attribute
  String id;
  @Element
  String description;
  @Element(name="miniatura")
  String miniatureUrl;
  Bitmap miniature;
  public MagazinePreview(String title, String id, 
                         String description, String miniatureUrl) 
  
    super();
    ...
     

现在为您的杂志收藏添加一个类。添加一个执行 XML 字符串反序列化的方法,在执行过程中实例化您的对象:

@Root
public class MagazinePreviews

  @ElementList(name="magazines")
  ArrayList<MagazinePreviews> previews;

  public static MagazinePreviews Load(String xml)
  
    Serializer serializer = new Persister();
    return serializer.read(MagazinePreviews.class, xml);
  

这将为您提供一个 MagazinePreviews 实例,其中包含您的 MagazinePreview 实例。简单的 XML 完成了所有繁重的工作。它将使用注解(@Element@Attribute)来知道哪些数据应该放在哪些字段中。

您仍然需要一种方法来连接到您的 PHP 服务器脚本。假设它是一个简单地返回 XML 字符串的脚本,你可以使用这个:

public String getXML() throws Exception

  StringBuilder builder = new StringBuilder();
  HttpClient httpclient = new DefaultHttpClient();
  HttpGet httpget = new HttpGet("myscript.php");
  HttpResponse response = httpclient.execute(httpget);
  int statuscode = response.getStatusLine().getStatusCode();
  if(statuscode == 200)
  
    HttpEntity entity = response.getEntity();
    InputStream content = entity.getContent();
    BufferedReader reader = new BufferedReader(new InputStreamReader(content));
    String line;
    while ((line = reader.readLine()) != null)  builder.append(line);               
  
  else throw new Exception("HTTP error: " + String.valueOf(statuscode));
  return builder.toString();

此代码在服务器上调用您的 PHP 脚本,检索响应(假定为 XML 字符串),或在请求失败时抛出错误。

【讨论】:

我可以在没有任何限制的商业应用上使用 SimpleXML 吗? 为什么在字符串 minituraUrl 之前使用 "@Element(name="miniatura")"; ??还有,为什么title & id 是属性,而description 是元素? 您可以不受任何限制地使用 SimpleXML。您必须对 XML 属性使用 @Attribute 注释,对 XML 元素使用 @Element 注释。我将@Element(name="miniatura") 用于“String mini-Url”,因为字段名称与 XML 中使用的名称不同。 谢谢,我现在明白了。现在的问题是如何将我用你最后一种方法获得的字符串 xml 转换为对象杂志预览。我怎样才能实现最后一件事? 当然是调用MagazinePreviews.Load(String xml) 方法。

从 php 脚本获取响应时出错

】从php脚本获取响应时出错【英文标题】:errorwhilegettingresponsefromphpscript【发布时间】:2011-05-3103:31:46【问题描述】:我在node.js中有以下代码console.log("Sendingrequest"+sys.inspect(request));varrequest=Yapi.request(\'get\',config.path+\'/index.php?comman 查看详情

使用命名空间从 XML 响应中获取 PHP 数组

】使用命名空间从XML响应中获取PHP数组【英文标题】:GetPHParrayfromXMLresponcewithnamespaces【发布时间】:2017-12-1818:32:14【问题描述】:我收到来自GEO服务(PDOK)的XML响应。$responce->raw_body包含这个XML结构:<xls:GeocodeResponsexmlns:xls="htt... 查看详情

xml(php中获取xml文件的方式/ajax获取xml格式的响应数据的方式)

1、XML格式规范:①必须有一个根元素②不可有空格、不可以数字或.开头、大小写敏感③不可交叉嵌套④属性双引号(浏览器自动修正成双引号了)⑤特殊符号要使用实体⑥注释和HTML一样虽然可以描述和传输复杂数据,但是其解... 查看详情

如何从 PHP 中的以下 SOAP XML 响应中获取 pinBlocked 标记

】如何从PHP中的以下SOAPXML响应中获取pinBlocked标记【英文标题】:HowtogetthepinBlockedtagfromthefollowingSOAPXMLresponseinPHP【发布时间】:2021-12-1309:23:18【问题描述】:如何在PHP中从以下SOAPXML响应中获取pinBlocked标记这是我的SOAPXML响应:<... 查看详情

从 Google Apps 脚本上的 URL 获取文件 ID 的最简单方法

】从GoogleApps脚本上的URL获取文件ID的最简单方法【英文标题】:EasiestwaytogetfileIDfromURLonGoogleAppsScript【发布时间】:2013-05-2606:10:02【问题描述】:这是我想要做的:给定一个Google文档URL,我想获取文档ID以在GoogleDrive上创建一个副... 查看详情

从 HttpClient SendAsync 请求获取响应时出现无法解释的超时和延迟

】从HttpClientSendAsync请求获取响应时出现无法解释的超时和延迟【英文标题】:UnexplainedtimeoutsanddelaysongettingtheresponsefromHttpClientSendAsyncrequests【发布时间】:2021-07-0512:31:47【问题描述】:我们有一个混合使用异步和同步代码的.NET4.7... 查看详情

flink学习笔记:flink的最简安装

文章目录一、Flink概述二、Flink的最简安装(一)获取flink安装包(二)上传flink安装包(三)解压flink安装包(四)配置环境变量三、利用FlinkShell实现词频统计(一)准备数据文件(二)启动flink本地服务(三)实现词频统计1、... 查看详情

在 php 脚本中执行 curl 命令并从服务器获取响应并提取它

】在php脚本中执行curl命令并从服务器获取响应并提取它【英文标题】:executecurlcommandinsidephpscriptandgetresponsefromserverandextractit【发布时间】:2014-01-1406:14:06【问题描述】:我想验证androidpaypal支付的证明为此,我想执行这段代码:c... 查看详情

如何在php中解析soap xml响应并从字符串中获取信息

】如何在php中解析soapxml响应并从字符串中获取信息【英文标题】:Howtoparsesoapxmlresponseinphpandgettheinformationfromthestring【发布时间】:2016-05-0622:17:51【问题描述】:我在从SOAP响应中提取信息时遇到了一些问题。这是我得到的回复:&... 查看详情

禅道的最简使用

1.禅道最简使用1.1.使用禅道来进行项目任务管理1.1.1.创建项目1.进入项目视图,点击右侧的”添加项目“链接。2.出现项目添加的页面在这个页面设置项目名称、代号、起止时间、可用工作日、团队名称、和项目描述等字段。其... 查看详情

从 XML 文件中获取节点在 php 中不起作用

】从XML文件中获取节点在php中不起作用【英文标题】:GetnodesfromXMLfilenotworkinginphp【发布时间】:2014-05-2622:10:48【问题描述】:我有以下XML结构,需要显示的时间戳和体育场名称、城市和国家/地区名称,但我的代码根本不起作用.... 查看详情

使用 AJAX 从 PHP 文件中获取响应

】使用AJAX从PHP文件中获取响应【英文标题】:GetresponsefromPHPfileusingAJAX【发布时间】:2013-02-0119:56:04【问题描述】:所以这是我的问题,我正在使用AJAX(jQuery)将表单发布到process.php,但页面实际上需要回显响应,例如apple或plum。... 查看详情

如何使用 PHP 将 Simple XML 解释为 HTML?

...问题描述】:我从服务器获得了简单XML的响应,但我只想获取我需要的页面数据并在html标记中显示这些数据。我该怎么做?我的请求代码:include"TopSdk.php";date_default_timezone_set(\'Asia/Shangha 查看详情

springmvc4+spring+mybatis3基于注解的最简配置

...DispatcherServlet来处理分发请求的,所以我们需要先在web.xml文件中配置DispatcherServlet,而Spring的启动则是使用了监听器,所以需要配置spring的监听器:<?xmlver 查看详情

从 php 获取响应并保存在 android 文件中

】从php获取响应并保存在android文件中【英文标题】:getresponsefromphpandsaveinafileandroid【发布时间】:2014-05-2012:08:22【问题描述】:我正在尝试从android向PHP文件发出请求。之后,我需要将PHP生成的响应(单个代码)保存到一个文件... 查看详情

从命令行运行 PHP 脚本

】从命令行运行PHP脚本【英文标题】:RunningPHPscriptfromthecommandline【发布时间】:2012-05-0300:02:01【问题描述】:如何使用用于解析Web脚本的PHP解释器?我有一个从Web访问的phpinfo.php文件显示已安装German。但是,如果我从命令行使用... 查看详情

如何使用不同目录中的 bash 脚本从多个文件中获取数据 HTTP 响应代码 5xx

】如何使用不同目录中的bash脚本从多个文件中获取数据HTTP响应代码5xx【英文标题】:HowtogetdataHTTPresponsecode5xxfrommultiplefileswithbashscriptindifferentdirectory【发布时间】:2022-01-2406:08:17【问题描述】:我正在学习bash脚本,但我可能需... 查看详情

从 XmlDocument 中获取带有换行符的缩进 XML 的最简单方法是啥?

】从XmlDocument中获取带有换行符的缩进XML的最简单方法是啥?【英文标题】:WhatisthesimplestwaytogetindentedXMLwithlinebreaksfromXmlDocument?从XmlDocument中获取带有换行符的缩进XML的最简单方法是什么?【发布时间】:2010-09-1705:46:41【问题描... 查看详情