[英]How to get a xml tag with attribute name
我正在嘗試使用PHP simple_xml從字段“ NMONTHLYINSTALMENT”中獲取值(數字21.48)。
這是我的PHP代碼和XML:
$xml->data->struct("var[@name='NMONTHLYINSTALMENT']")->number
<wddxPacket version='1.0'><header/>
<data>
<struct>
<var name='UWEBSHOPID'><string>6FF1633B-6AE0-4AB6-A19E-D934B7DF783F</string></var>
<var name='NMONTHLYINSTALMENT'><number>21.48</number></var>
<var name='CCOMMAND'><string>GetMonthlyInstalment</string></var>
<var name='NDURATION'><string>48</string></var>
<var name='NPRICE'><string>825.89</string></var>
<var name='COUTPUTTYPE'><string>XML</string></var>
</struct>
</data>
</wddxPacket>
我無法正常工作! 任何幫助都非常有用! 謝謝!
您可以使用以下內容;
<?php
$xml_str = <<< EOT
<wddxPacket version='1.0'><header/>
<data>
<struct>
<var name='UWEBSHOPID'><string>6FF1633B-6AE0-4AB6-A19E-D934B7DF783F</string></var>
<var name='NMONTHLYINSTALMENT'><number>21.48</number></var>
<var name='CCOMMAND'><string>GetMonthlyInstalment</string></var>
<var name='NDURATION'><string>48</string></var>
<var name='NPRICE'><string>825.89</string></var>
<var name='COUTPUTTYPE'><string>XML</string></var>
</struct>
</data>
</wddxPacket>
EOT;
$xml = simplexml_load_string($xml_str);
$result = $xml->xpath('//data/struct/var[@name="NMONTHLYINSTALMENT"]/number');
echo $result[0][0];
使用DomDocument和xml路徑
$doc = new DomDocument;
$doc->Load("xmlfileName.xml");
$xpath = new DOMXPath($doc);
$path=$xpath->query("//data/struct/var[@name="NMONTHLYINSTALMENT"]/number")->item(0);
$doc->saveXML();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.