[英]get a specific row of a table from an XML file in php
因此,我有一个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容器ID对象类型ID质量数量耐用性MaxDurability236158644名称:Vertato Zonda10020002721581032名称:
注意 :尝试在第49行的D:\\ HTTP \\ XAMPP \\ htdocs \\ index.php中获取非对象的属性
100100273158361名称:Iron Bar10060002801581030名称:
注意 :尝试在第49行的D:\\ HTTP \\ XAMPP \\ htdocs \\ index.php中获取非对象的属性
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
包含1032
或1030
那么您当然要尝试获取不存在的对象的属性。
要通过标记值查找simplexml节点条目,请使用xpath
$ObjectXML->xpath("row/ID[.=\"$value\"]/parent::*");
这是一个如何使用XPath通过值获取ID
节点的示例,以及如何获取父节点的示例:
$value = 236;
$row = $xml->xpath( "//ID[.=\"$value\"]/parent::*" );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.