php - 在 php 中解析 solr 响应并将它们显示在 html 表中

标签 php html xml solr

所以我有很多 solr 实例在运行,为了提交搜索,我只是将一个快速网站放在一起。在发出请求 URL 后,在 php 中我使用以下命令从 solr 获取 XML 响应:

    $solr_return= file_get_contents($full_request_URL);

现在响应不是简单的 xml 格式,如果您明白我的意思,它具有 solr-ness。我希望能够解析返回的 xml 并将它们显示在 html 表格的行中。

我一直在网上寻找,有许多不同的想法让我觉得我可能完全不在乎,这不是做这件事的方法。如果你是我,你会怎么做?

$solr_return 中的 xml 如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<response>

<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">95</int>
  <lst name="params">
    <str name="indent">true</str>
    <str name="rows">10</str>
    <str name="start">0</str>
    <str name="q">*:*</str>
    <str name="shards">some shards here</str>
  </lst>
</lst>
<result name="response" numFound="2403043" start="0">
  <doc>
    <str name="1">test1</str>
    <str name="2">test2</str>
    <str name="3">test3</str>
  </doc>
  <doc>
    <str name="1">test1</str>
    <str name="2">test2</str>
    <str name="3">test3</str>
  </doc>
</result>
</response>

对于这个例子,我想显示一个包含三列 1、2 和 3 以及两行 test1、test2 和 test3 的表格。

提前感谢您的帮助。

最佳答案

最简单的做法是将 &wt=php 添加到 Solr 请求 URL,然后运行 ​​eval() 并将结果分配给一个数组(假设您相信您的 Solr 服务器不会发回恶意代码)。然后 Solr 结果将只是一个常规的 PHP 数组,您可以根据需要对其进行操作。

或者你可以在末尾添加&wt=json,获取JSON格式的结果,然后在PHP中对返回的字符串运行json_decode()将其转换为一个 PHP 数组。

关于php - 在 php 中解析 solr 响应并将它们显示在 html 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660819/

相关文章:

html - 修复了 IE 中带有 CSS 样式问题的标题表

css - 如何在 Chrome 中删除输入字段的 3D 边框

xml - XSLT - 如果属性值字符长度大于 10,则为 bool 值 true

c# - Apache 点燃,C# : Thin Client unable to connect to server node

php - CakePHP 3 : select data from multiple table

php.ini 不改变值

html - 输入标记中用于指定密码长度的模式属性不起作用?

java - XML解析错误: UTF-8

php - 如何使用 PHP 条码生成器将条码打印到我想要​​的 pdf 格式页面上?

php - 为什么 PHP 需要类文件?