gpt4 book ai didi

php - 从 PHP 中的 XML 文件中获取表格的特定行

转载 作者:行者123 更新时间:2023-11-30 22:43:15 24 4
gpt4 key购买 nike

所以我有一个存储游戏信息(例如库存内容)的 SQL 数据库,我正尝试使用 php 在网页上显示这些信息。

SQL 一切正常,我有一个 XML 文件,其中包含所有项目的所有名称和信息。当我尝试读取 xml 文件以打印项目的名称时,我收到一些条目的错误。

<?php

$ObjectXML = simpleXML_load_file("xml\objects_types.xml") or die("Error: Cannot Open XML file Object Types");

$servername = "localhost";
$username = -
$password = -

$connection = new mysqli($servername, $username, $password);

if($connection->connect_error)
{
die("Connection failed: " . $connection->connect_error);
}
echo("Connected Successfully<br>");

$sql = "SELECT * FROM lif_1.items WHERE ContainerID = 158;";
$result = $connection->query($sql);
echo('<table style="width:100%">');
echo("<tr>");
echo(" <th>ID</th>");
echo(" <th>ContainerID</th>");
echo(" <th>ObjectTypeID</th>");
echo(" <th>Quality</th>");
echo(" <th>Quantity</th>");
echo(" <th>Durability</th>");
echo(" <th>MaxDurability</th>");
echo("</tr>");
foreach($result as $row)
{
echo("<tr>");
$rowpos = 0;
foreach($row as $value)
{
$rowpos++;
echo("<td>");
echo($value);
if($rowpos==3)
{
echo(" Name:");
echo($ObjectXML->row[$value-1]->Name);
//print_r($ObjectXML->xpath('//objects_types[@ID="'+$value+'"]'));
}
echo("</td>");
}
echo("</tr>");
}
?>

网页(和错误):http://86.146.184.166/

XML 文件:http://86.146.184.166/xml/Objects_types.xml

我尝试使用基于此处解决方案的 xpath,但似乎返回了一个空数组。

编辑:输出:(有点难以阅读)

连接成功
ID ContainerID ObjectTypeID Quality Quantity Durability MaxDurability236158644 Name:Vertato Zonda10020002721581032 Name:
注意:试图获取 D:\HTTP\XAMPP\htdocs\index.php 中非对象的属性 49
100100273158361 名称:铁棒10060002801581030 名称:
注意:试图获取 D:\HTTP\XAMPP\htdocs\index.php 中非对象的属性 49
10028001089158338 名称:骨胶523001090158430 名称:木门楼561001091158390 名称:原始坩埚和木棍562001092158342 名称:丝丝56500

edit2 - 已回答 :D我改变了什么,以防有人发现这有用:

    echo(" Name:");
//echo($ObjectXML->row[$value-1]->Name);
$xpathobject = $ObjectXML->xpath("row/ID[.=\"$value\"]/parent::*");
//print_r($xpathobject);
echo($xpathobject[0]->Name);

最佳答案

XML 中的 row 标记仅包含 1029 条目。当你调用这条线时

echo($ObjectXML->row[$value-1]->Name);

$value 包含 10321030 时,您当然会尝试获取不存在的对象的属性。

要按标记值查找 simplexml 节点条目,请使用 xpath

$ObjectXML->xpath("row/ID[.=\"$value\"]/parent::*");

关于php - 从 PHP 中的 XML 文件中获取表格的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30495429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com