簡體   English   中英

使用php中的DOMDocument從xml獲取最后一個子節點

[英]get the last child node from xml using DOMDocument in php

這是我的xml:

<details> 
        <car>
          <id>61XZB6</id>
          <Jan-01-14>20</Jan-01-14>
          <Jan-02-14>435</Jan-02-14>
          <Jan-03-14>454</Jan-03-14>
          <Jan-04-14>768</Jan-04-14>
          <Jan-05-14>24</Jan-05-14>
          <Jan-06-14>675</Jan-06-14>
          <Jan-07-14>213</Jan-07-14>
          <Jan-08-14>44</Jan-08-14>
          <Jan-09-14>565</Jan-09-14>
          <Jan-10-14>80</Jan-10-14>
          <Jan-11-14>998</Jan-11-14>
          <Jan-12-14>67</Jan-12-14>
          <Jan-13-14>77</Jan-13-14>
          <Jan-14-14>909</Jan-14-14>
          <Jan-15-14>34</Jan-15-14>
          <Jan-16-14>887</Jan-16-14>
          <Jan-17-14>767</Jan-17-14>
          <Jan-18-14>545</Jan-18-14>
          <Jan-19-14>67</Jan-19-14>
          <Jan-20-14>787</Jan-20-14>
          <Jan-21-14>898</Jan-21-14>
          <Jan-22-14>435</Jan-22-14>
          <Jan-23-14>42</Jan-23-14>
          <Jan-24-14>232</Jan-24-14>
          <Jan-25-14>234</Jan-25-14>
          <Jan-26-14>675</Jan-26-14>
          <Jan-27-14>46</Jan-27-14>
          <Jan-28-14>546</Jan-28-14>
          <Jan-29-14>88</Jan-29-14>
          <Jan-30-14>0</Jan-30-14>
          <Jan-31-14>0</Jan-31-14>
        </car>
     </details>

我的查詢是如何在將新節點插入每個標簽之前檢查每個標簽內的最后一個節點。在此先感謝您提供的各種幫助。

如果我對您的理解正確,那么您想檢查每個car元素節點中的最后一個元素嗎? 好了,Xpath有兩個可以在條件中使用的方法position()last()

選擇汽車節點

/details/car

選擇car節點的子元素節點

/details/car/*

添加條件以將選擇限制到最后一個節點

/details/car/*[last()]

完整示例: https//eval.in/145531

$dom = new DOMDocument();
$dom->loadXml($xml);
$xpath = new DOMXpath($dom);

foreach ($xpath->evaluate('/details/car/*[last()]') as $node) {
  var_dump(
    $node->nodeName,
    $node->nodeValue
  );
}

輸出:

string(9) "Jan-31-14"
string(1) "0"

暗示!

彈性元素名稱確實是不好的樣式,您將無法在架構中定義它們。 如果可能的話,我建議您將其更改為<amount date="Jan-31-14">0</amount>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM