gpt4 book ai didi

xpath - xpath根据元素部分匹配来拉节点

转载 作者:行者123 更新时间:2023-12-03 17:21:04 24 4
gpt4 key购买 nike

在下面的xml片段上,我想为不同批次提取行节点,这实际上是一个时间戳记,即JP1800代表日本18点钟的时间。

//*[Batch='LN12000']提取所有伦敦中午节点,而
data/row提取所有这些值,包括空的Batch值。

由于//*[Batch='LN'*]不起作用,我将如何提取伦敦的所有时间?

<?xml version="1.0"?>
-<data>
+<header>
+<row>
+<row>
+<row>
-<row>
<Date>2019-10-21</Date>
<Series>23</Series>
<OnTheRun>N</OnTheRun>
<Depth>0</Depth>
<Batch>JP1700</Batch>
</row>
-<row>
<Date>2019-10-21</Date>
<Series>23</Series>
<OnTheRun>N</OnTheRun>
<Depth>4</Depth>
<Batch>JP1800</Batch>
</row>

最佳答案

听起来您正在寻找类似[starts-with] [1]函数的东西。 :

//header/row/Batch[starts-with(.,"LN")]

这里有一些PHP代码示例,请看:

    <?php
$xml = <<<XML
<?xml version="1.0"?>
<data>
<header>
<row>
<Date>2019-10-21</Date>
<Series>23</Series>
<OnTheRun>N</OnTheRun>
<Depth>0</Depth>
<Batch>JP1700</Batch>
</row>
<row>
<Date>2019-02-05</Date>
<Series>27</Series>
<OnTheRun>X</OnTheRun>
<Depth>89</Depth>
<Batch>LN9877</Batch>
</row>
</header>
</data>
XML;

$dom = new DOMDocument();
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
$query = $xpath->query('//header/row/Batch[starts-with(.,"LN")]');

/** @var DOMElement $node */
foreach ($query as $node) {
print($node->nodeValue); //outputs LN9877
}```


[1]: https://www.w3.org/TR/1999/REC-xpath-19991116/#function-starts-with

关于xpath - xpath根据元素部分匹配来拉节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58548665/

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