PHP中DOM文档的XML读取
我有这个XML(它的一部分发布在这里)PHP中DOM文档的XML读取,php,xml,Php,Xml,我有这个XML(它的一部分发布在这里) $product是一个DOMELENT。您可以使用getAttribute函数访问doElement的属性,因此,在本例中,$product->getAttribute('no') 请显示您的代码,以便我们可以帮助您了解哪里出了问题。因此,这不是为了让人们为你编写代码。你的HTML真的在一些标记之前有所有的-字符吗?我复制并粘贴了IE的XML输出,这就是它有缺点的原因。谢谢,5分钟前我自己发现的:)非常感谢……我仍然很难找到股票价值。,…浏览树…查找Dom
$product是一个DOMELENT。您可以使用getAttribute函数访问doElement的属性,因此,在本例中,$product->getAttribute('no') 请显示您的代码,以便我们可以帮助您了解哪里出了问题。因此,这不是为了让人们为你编写代码。你的HTML真的在一些标记之前有所有的
-
字符吗?我复制并粘贴了IE的XML输出,这就是它有缺点的原因。谢谢,5分钟前我自己发现的:)非常感谢……我仍然很难找到股票价值。,…浏览树…查找DomXPath并使用它$xp->query(“/products/product[@no='AP1126S-07']]/stocks”)->item(0)将返回stocks元素。我让你从查询中推断出如何找到你正在寻找的股票。谢谢迈克!DomXPath是一个非常棒的工具,可以精确定位XML树中某个项目的确切位置:))你救了我一天。严肃地说:)但是使用DOMXPath::evaluate(),它允许获取标量值,而不仅仅是节点列表:$xp->evaluate(“string(/products/product[@no='AP1126S-07']]/stocks[@name='navi_central']/@value)”)
我选择query()而不是evaluate(),因为对于以前没有遇到过它(或xpath语法)的人来说,它更简单。
<products>
- <product no="AP1126S-07" name=""Clergoux" set kravata" price="449.8" currency="Kč">
- <folders>
<folder category="Fashion" subcategory="kravaty" />
</folders>
<description name="POPIS PRODUKTU">Hedvábná kravata André Philippe s manžetovými knoflíčky a kapesníčkem v dárkové krabičce zabalené do stejné látky, ze které je vyrobená kravata.</description>
- <properties>
<property name="ROZMĚRY VÝROBKU" value="110×105×110 mm" />
<property name="KS / KARTON" value="96" />
<property name="HMOTNOST KARTONU" value="31,5" />
<property name="NETTO HMOTNOST / KARTON" value="29,5" />
<property name="DIM1" value="90" />
<property name="DIM2" value="45" />
<property name="DIM3" value="36" />
<property name="TECHNOLIGIE POTISKU" value="T1 (8C, 80×50 mm)" />
<property name="TARIF" value="6215100090" />
<property name="M3/CARTON" value="0,146" />
<property name="COOL 2014 KAPITOLA" value="fashion" />
<property name="COOL 2014 STRANY" value="407" />
<property name="main category" value="fashion" />
</properties>
- <images>
<image src="http://www.andapresent.com/kepek/cms/original/26484.jpg" />
</images>
- <stocks>
<stock name="navi_central" value="150" />
<stock name="navi_arrive" value="" date="" />
<stock name="eu_central" value="" date="" />
<stock name="eu_arrive_1" value="" date="" />
<stock name="eu_arive_2" value="" date="" />
</stocks>
$xmlString = 'anda_xml_export2.xml';
$doc = new DomDocument();
$doc->load($xmlString);
$product = $doc->getElementsByTagName('product');
$sku = $product->item(0)->getAttribute('no');
echo $sku;
if($sku=='AP1126S-07'){
$my_stocks_node = $product->getElementsByTagName("stocks");
$my_stock_node = $my_stocks_node->getElementsByTagName("stock");
$stock = $my_stock_node->item(0)->getAttribute('value');
echo "stock : ";
echo $stock;
}
echo $sku;