gpt4 book ai didi

php - 在 php 中解析 xml

转载 作者:数据小太阳 更新时间:2023-10-29 02:56:35 26 4
gpt4 key购买 nike

我有一个包含这样内容的 XML 提要

<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:noNamespaceSchemaLocation="propiedades.xsd" generated="2015-04-28T15:16:46">
<propiedades>
<Descripcion>Excelente casa de dos pisos en condominio en la urbanización Santa Maria De Villa Club, en Carabayllo, con un AT:92m2 y un AC:113m2, cuenta con 3 iluminadas habitaciones, 3 baños, cochera, de estreno, con áreas verdes, piscina, cancha de fútbol, salones para actividades. ¡Para más información contactarse con nuestros agente!ID: 35751</Descripcion>
<Foto1>http://www.alfredograf.com/fotoprop/mini-35751%20-%201.jpg</Foto1>
<Foto2>http://www.alfredograf.com/fotoprop/mini-35751%20-%202.jpg</Foto2>
<Foto3>http://www.alfredograf.com/fotoprop/mini-35751%20-%203.jpg</Foto3>
<Foto4>http://www.alfredograf.com/fotoprop/mini-35751%20-%204.jpg</Foto4>
<Foto5>http://www.alfredograf.com/fotoprop/mini-35751%20-%205.jpg</Foto5>
<Foto6>http://www.alfredograf.com/fotoprop/mini-35751%20-%206.jpg</Foto6>
<Foto7>http://www.alfredograf.com/fotoprop/mini-35751%20-%207.jpg</Foto7>
<Foto8>http://www.alfredograf.com/fotoprop/mini-35751%20-%208.jpg</Foto8>
</propiedades>
</dataroot>

我想知道如何提取图像,因为每个图像都有不同的 XML 名称。像 Fotos1,2,3 等

最佳答案

您可以使用 xpath 查询定位以 Foto 开头的节点名称,然后在获取这些节点之后,只需使用 foreach:

$xml_string = '<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:noNamespaceSchemaLocation="propiedades.xsd" generated="2015-04-28T15:16:46">
<propiedades>
<Descripcion>Excelente casa de dos pisos en condominio en la urbanización Santa Maria De Villa Club, en Carabayllo, con un AT:92m2 y un AC:113m2, cuenta con 3 iluminadas habitaciones, 3 baños, cochera, de estreno, con áreas verdes, piscina, cancha de fútbol, salones para actividades. ¡Para más información contactarse con nuestros agente!ID: 35751</Descripcion>
<Foto1>http://www.alfredograf.com/fotoprop/mini-35751%20-%201.jpg</Foto1>
<Foto2>http://www.alfredograf.com/fotoprop/mini-35751%20-%202.jpg</Foto2>
<Foto3>http://www.alfredograf.com/fotoprop/mini-35751%20-%203.jpg</Foto3>
<Foto4>http://www.alfredograf.com/fotoprop/mini-35751%20-%204.jpg</Foto4>
<Foto5>http://www.alfredograf.com/fotoprop/mini-35751%20-%205.jpg</Foto5>
<Foto6>http://www.alfredograf.com/fotoprop/mini-35751%20-%206.jpg</Foto6>
<Foto7>http://www.alfredograf.com/fotoprop/mini-35751%20-%207.jpg</Foto7>
<Foto8>http://www.alfredograf.com/fotoprop/mini-35751%20-%208.jpg</Foto8>
</propiedades>
</dataroot>';

$xml = simplexml_load_string($xml_string);
$fotos = $xml->xpath('//*[substring(name(), 1, 4) = "Foto"]');
foreach($fotos as $foto) {
echo $foto, '<br/>';
}

Sample Output

如果你不想使用 xpath 路由,只需使用 ->getName 来检查节点名称并使用普通的 PHP 字符串函数来检查它:

$xml = simplexml_load_string($xml_string);
foreach($xml->propiedades->children() as $element) {
if(substr($element->getName(), 0, 4) === 'Foto') {
echo $element, '<br/>';
}
}

Sample Output

关于php - 在 php 中解析 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29934562/

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