我正在尝试过滤 xml 文件的结果。我被要求过滤的字段之一是每个节点的属性价格。问题是 xml 来自西班牙来源,价格是小数点分隔符,而不是 . 和千位分隔符是,而不是。
我正在尝试过滤一个 xml 文件,其中仅出现价格低于提供的价格的节点。
xml结构为:
<RoomStays>
<RoomStay InfoSource="" Price="201,60" Discount="0" MealPlan="Sólo alojamiento" MealPlanId="1" Provider="Marsol" ProviderId="3" HotelName="HOTEL LA ESTACION" Rating="" Latitud="" Longitud="">
<RoomStay InfoSource="" Price="1.234,75" Discount="0" MealPlan="Sólo alojamiento" MealPlanId="1" Provider="Marsol" ProviderId="3" HotelName="HOTEL LA ESTACION" Rating="" Latitud="" Longitud="">
....More nodes
</RoomStays>
我尝试使用 XPath 和 Linq2Xml 进行过滤。我已经得出结论,我必须将 , 替换为 。和 。,但我得到 0 个结果。
值低于 1000 时只有 ,我使用它:
doc.XPathSelectElements(./RoomStays/RoomStay[translate(@Price,',','.')<=256.78])
但是当价格超过 1000 时,使用千位分隔符。它不起作用,所以我尝试了:
doc.XPathSelectElements(./RoomStays/RoomStay[translate(translate(@Price,'.',''),',','.')<=256.78])
但它返回 0 结果(我尝试使用替换功能而不是翻译来删除 . 字符,但我得到一个异常)。
所以我被困住了,如果有人可以帮助我,即使有另一种方法(不一定是 XPath)。
提前致谢。