【发布时间】:2012-07-13 14:27:07
【问题描述】:
我有一个由第三方提供的XML,我无法控制其格式。它看起来像这样:
<base>
<results index="1">
<quote vendor_name="Company X">
<quote_detail rate="3.375" price="-0.440">
<stuff>value</stuff>
</quote_detail>
</quote>
</results>
<results index="2">
<quote vendor_name="Company y">
<quote_detail rate="3.548" price="-0.230">
<stuff>value</stuff>
</quote_detail>
</quote>
</results>
<results index="3">
<quote vendor_name="Company Z">
<quote_detail rate="3.799" price="1.120">
<stuff>value</stuff>
</quote_detail>
</quote>
</results>
</base>
我需要做的是返回价格最接近零的结果(vendor_name、rate 和price),而不超过以及上下两个。理想的结果应该是这样的(中间的最接近零):
- 公司 Z / 3.875 / -1.375
- 公司 Y / 3.750 / -0.875
- 公司 X / 3.375 / -0.440
- A公司 / 3.500 / 0.250
- 公司 B / 3.375 / 1.125
我不确定执行此操作所需的逻辑或如何在运行所述逻辑时保留XML 信息。有什么帮助吗?
【问题讨论】:
-
A 公司不是比 X 公司更接近于零吗?
-
不知道是否可以对 XML 进行排序,但您可以将其放入数组中,
ksort它并输出前 5 个变量。 -
@DainisAbols 建议一个好的开始,我认为这个问题不属于这里。你给出了一个起点,一个期望的终点,但在这两者之间没有任何解决办法
-
你可以使用XQuery,这个问题可能对你有帮助stackoverflow.com/q/2211743/1105514
标签: php xml xml-parsing