XPATH does not work

Hi there,

I try to get values from the following XML File:

<?xml version="1.0"?>
<WaterBus>
<D1>
<DeviceState _="1"/>
<ChangeToggle _="1"/>
<Var_0 _=" V: A_08/95 "/>
<Var_1 _="COMMON Electronic - Analyser"/>
<Var_2 _="0"/>
<Var_3 _="         Cl2"/>
<Var_4 _="1"/>
<Var_5 _="0.00"/>
<Var_5_1 _="0.00"/>
<Var_5_2 _="1.00"/>
<Var_5_3 _=" mg/l"/>
<Var_5_4 _="100"/>
<Var_6 _="1156.5"/>
<Var_6_1 _="1156.5"/>
<Var_6_2 _="1156.5"/>
<Var_6_3 _="-----"/>
<Var_6_4 _="45"/>
<Var_7 _="1156.5"/>
<Var_7_1 _="1156.5"/>
<Var_7_2 _="1156.5"/>
<Var_7_3 _="-----"/>
<Var_7_4 _="45"/>
<Var_8 _="0.15"/>
<Var_8_1 _="0.00"/>
<Var_8_2 _="1.00"/>
<Var_8_3 _=" mg/l"/>
<Var_8_4 _="100"/>
<Var_9 _="0.15"/>
<Var_9_1 _="0.00"/>
<Var_9_2 _="1.00"/>
<Var_9_3 _=" mg/l"/>
<Var_9_4 _="100"/>
<Var_10 _="1156.5"/>
<Var_10_1 _="1156.5"/>
<Var_10_2 _="1156.5"/>
<Var_10_3 _="-----"/>
<Var_10_4 _="45"/>
<Var_11 _="1156.5"/>
<Var_11_1 _="1156.5"/>
<Var_11_2 _="1156.5"/>
<Var_11_3 _="-----"/>
<Var_11_4 _="45"/>
<Var_12 _="0.60"/>
<Var_12_1 _="0.00"/>
<Var_12_2 _="1.00"/>
<Var_12_3 _=" mg/l"/>
<Var_12_4 _="100"/>
<Var_13 _="5"/>
<Var_14 _="16"/>
<Var_15 _="0"/>
<Var_16 _="1364"/>
<Var_17 _="0.000000"/>
<Var_18 _="1"/>
<Var_19 _="11565"/>
<Var_20 _="60"/>
<Var_21 _="10"/>
<Var_22 _="20.0"/>
<Var_23 _="32"/>
<Var_24 _="1"/>
<Var_25 _="15"/>
<Var_26 _="5"/>
<Var_27 _="0"/>
<Var_28 _="32"/>
<Var_29 _="1"/>
<Var_30 _="15"/>
<Var_31 _="5"/>
<Var_32 _="0"/>
<Var_33 _="32"/>
<Var_34 _="1"/>
<Var_35 _="15"/>
<Var_36 _="5"/>
<Var_37 _="0"/>
<Var_38 _="32"/>
<Var_39 _="1"/>
<Var_40 _="15"/>
<Var_41 _="5"/>
<Var_42 _="0"/>
<Var_43 _="00 00 00 00 00 00"/>
<Var_44 _="1.0"/>
<Var_45 _="4"/>
<Var_46 _="1"/>
<Var_47 _="60"/>
<Var_48 _="90"/>
<Var_49 _="0.0"/>
<Var_50 _="100.0"/>
<Var_51 _="60"/>
<Var_52 _="10.0"/>
<Var_53 _="1"/>
<Var_54 _="2"/>
<Var_55 _="1"/>
<Var_56 _="1"/>
<Var_57 _="0"/>
<Var_58 _="11565"/>
<Var_59 _="11565"/>
<Var_60 _="1"/>
<Var_61 _="2"/>
<Var_62 _="1"/>
<Var_63 _="70"/>
<Var_64 _="250"/>
<Var_65 _="0.308532"/>
<Var_66 _="9.843943e-12"/>
</D1>
<D2>
<DeviceState _="1"/>
<ChangeToggle _="1"/>
<Var_0 _=" V: A_08/95 "/>
<Var_1 _="COMMON Electronic - Analyser"/>
<Var_2 _="0"/>
<Var_3 _="          pH"/>
<Var_4 _="1"/>
<Var_5 _="7.12"/>
<Var_5_1 _="4.00"/>
<Var_5_2 _="9.00"/>
<Var_5_3 _="   pH"/>
<Var_5_4 _="100"/>
<Var_6 _="1156.5"/>
<Var_6_1 _="1156.5"/>
<Var_6_2 _="1156.5"/>
<Var_6_3 _="-----"/>
<Var_6_4 _="45"/>
<Var_7 _="1156.5"/>
<Var_7_1 _="1156.5"/>
<Var_7_2 _="1156.5"/>
<Var_7_3 _="-----"/>
<Var_7_4 _="45"/>
<Var_8 _="7.00"/>
<Var_8_1 _="4.00"/>
<Var_8_2 _="9.00"/>
<Var_8_3 _="   pH"/>
<Var_8_4 _="100"/>
<Var_9 _="7.00"/>
<Var_9_1 _="4.00"/>
<Var_9_2 _="9.00"/>
<Var_9_3 _="   pH"/>
<Var_9_4 _="100"/>
<Var_10 _="1156.5"/>
<Var_10_1 _="1156.5"/>
<Var_10_2 _="1156.5"/>
<Var_10_3 _="-----"/>
<Var_10_4 _="45"/>
<Var_11 _="1156.5"/>
<Var_11_1 _="1156.5"/>
<Var_11_2 _="1156.5"/>
<Var_11_3 _="-----"/>
<Var_11_4 _="45"/>
<Var_12 _="7.20"/>
<Var_12_1 _="4.00"/>
<Var_12_2 _="9.00"/>
<Var_12_3 _="   pH"/>
<Var_12_4 _="100"/>
<Var_13 _="5"/>
<Var_14 _="17"/>
<Var_15 _="0"/>
<Var_16 _="1004"/>
<Var_17 _="0.000000"/>
<Var_18 _="1"/>
<Var_19 _="20"/>
<Var_20 _="7.20"/>
<Var_21 _="10"/>
<Var_22 _="20.0"/>
<Var_23 _="16"/>
<Var_24 _="2"/>
<Var_25 _="7.00"/>
<Var_26 _="5"/>
<Var_27 _="0"/>
<Var_28 _="32"/>
<Var_29 _="1"/>
<Var_30 _="7.00"/>
<Var_31 _="5"/>
<Var_32 _="0"/>
<Var_33 _="32"/>
<Var_34 _="1"/>
<Var_35 _="70.0"/>
<Var_36 _="5"/>
<Var_37 _="0"/>
<Var_38 _="32"/>
<Var_39 _="1"/>
<Var_40 _="70.0"/>
<Var_41 _="5"/>
<Var_42 _="0"/>
<Var_43 _="00 00 00 00 00 00"/>
<Var_44 _="1.0"/>
<Var_45 _="4"/>
<Var_46 _="2"/>
<Var_47 _="60"/>
<Var_48 _="90"/>
<Var_49 _="0.0"/>
<Var_50 _="100.0"/>
<Var_51 _="11565"/>
<Var_52 _="11565"/>
<Var_53 _="1"/>
<Var_54 _="2"/>
<Var_55 _="1"/>
<Var_56 _="2"/>
<Var_57 _="0"/>
<Var_58 _="11565"/>
<Var_59 _="-0.38"/>
<Var_60 _="1"/>
<Var_61 _="2"/>
<Var_62 _="1"/>
<Var_63 _="90"/>
<Var_64 _="11565"/>
<Var_65 _="9.843943e-12"/>
<Var_66 _="-28.849304"/>
</D2>
<D3>
<DeviceState _="1"/>
<ChangeToggle _="1"/>
<Var_0 _=" V: A_08/95 "/>
<Var_1 _="COMMON Electronic - Analyser"/>
<Var_2 _="0"/>
<Var_3 _="       Redox"/>
<Var_4 _="2"/>
<Var_5 _="620"/>
<Var_5_1 _="400"/>
<Var_5_2 _="900"/>
<Var_5_3 _="   mV"/>
<Var_5_4 _="1"/>
<Var_6 _="1156.5"/>
<Var_6_1 _="1156.5"/>
<Var_6_2 _="1156.5"/>
<Var_6_3 _="-----"/>
<Var_6_4 _="45"/>
<Var_7 _="21"/>
<Var_7_1 _="0"/>
<Var_7_2 _="50"/>
<Var_7_3 _="   &#xf8;C"/>
<Var_7_4 _="1"/>
<Var_8 _="700"/>
<Var_8_1 _="400"/>
<Var_8_2 _="900"/>
<Var_8_3 _="   mV"/>
<Var_8_4 _="1"/>
<Var_9 _="700"/>
<Var_9_1 _="400"/>
<Var_9_2 _="900"/>
<Var_9_3 _="   mV"/>
<Var_9_4 _="1"/>
<Var_10 _="700"/>
<Var_10_1 _="400"/>
<Var_10_2 _="900"/>
<Var_10_3 _="   mV"/>
<Var_10_4 _="1"/>
<Var_11 _="700"/>
<Var_11_1 _="400"/>
<Var_11_2 _="900"/>
<Var_11_3 _="   mV"/>
<Var_11_4 _="1"/>
<Var_12 _="1156.5"/>
<Var_12_1 _="1156.5"/>
<Var_12_2 _="1156.5"/>
<Var_12_3 _="-----"/>
<Var_12_4 _="45"/>
<Var_13 _="0"/>
<Var_14 _="16"/>
<Var_15 _="0"/>
<Var_16 _="978"/>
<Var_17 _="-3.947448e-34"/>
<Var_18 _="1"/>
<Var_19 _="11565"/>
<Var_20 _="11565"/>
<Var_21 _="11565"/>
<Var_22 _="11565"/>
<Var_23 _="32"/>
<Var_24 _="1"/>
<Var_25 _="700"/>
<Var_26 _="5"/>
<Var_27 _="0"/>
<Var_28 _="32"/>
<Var_29 _="1"/>
<Var_30 _="700"/>
<Var_31 _="5"/>
<Var_32 _="0"/>
<Var_33 _="32"/>
<Var_34 _="1"/>
<Var_35 _="700"/>
<Var_36 _="5"/>
<Var_37 _="0"/>
<Var_38 _="32"/>
<Var_39 _="1"/>
<Var_40 _="700"/>
<Var_41 _="5"/>
<Var_42 _="0"/>
<Var_43 _="00 00 00 00 00 00"/>
<Var_44 _="11565"/>
<Var_45 _="45"/>
<Var_46 _="45"/>
<Var_47 _="11565"/>
<Var_48 _="11565"/>
<Var_49 _="11565"/>
<Var_50 _="11565"/>
<Var_51 _="11565"/>
<Var_52 _="11565"/>
<Var_53 _="64"/>
<Var_54 _="2"/>
<Var_55 _="1"/>
<Var_56 _="8"/>
<Var_57 _="0"/>
<Var_58 _="11565"/>
<Var_59 _="11565"/>
<Var_60 _="1"/>
<Var_61 _="2"/>
<Var_62 _="1"/>
<Var_63 _="60"/>
<Var_64 _="11565"/>
<Var_65 _="-3.947448e-34"/>
<Var_66 _="602.806641"/>
</D3>
<Active _="1"/>
<FreeMem _="548932"/>
</WaterBus>

My goal is to extract the values with the following paths:

/WaterBus/D1/Var_5[@=“0.00”]
/WaterBus/D2/Var_5[@
=“7.12”]@_
/WaterBus/D3/Var_5[@=“620”]@
/WaterBus/D3/Var_7[@_=“21”]

So I tried with this item in http.items file:

String depoloxtemp "Temperatur [%s]"  { http="<[http://192.168.1.222/System/Properties/Process/WaterBus/:100:XPATH(/WaterBus/D3/Var_7]" }

Sitemap looks like this:

     Frame label="Pool" {
     Text item=depoloxtemp icon="temperature"    
}

Unfortunately no value is displayed. It looks like this:

pool

Could someone help me with this?

Thanks a lot

Greetings

What do events.log and openhab.log tell you?
Have you installed the HTTP binding, and the XPATH transformation?

Why is the Item type String ? Shouldn’t it be type Number:Temperature ?

Yes, the bindings are installed both. The openhab.log does only show:

2019-07-10 14:44:52.360 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model ‘name’

relevant events.log message:

2019-07-10 14:48:38.648 [vent.ItemStateChangedEvent] - depoloxtemp changed from NULL to

Yes, but I want to avoid problems with parsing the number format because it’s a double.

This Xpath expression is meaningless. It doesn’t selecting anything. Exactly what piece of data in the XML are you trying to extract with this Xpath? Do you want the “0.00” from Var_5’s “_” attribute, no matter what value it may be (which makes sense)? In that case you would use string(/WaterBus/D1/Var_5/@_) which will return 0.00.

A useful tool to use is https://www.freeformatter.com/xpath-tester.html

1 Like

yes, yes, yes you are the man! I tried several syntaxes for the xpath but not just simple /@_
that does the trick. Finally the values are in the system. Thank you very much :slightly_smiling_face: