Like @AlexeiLevenkov mentioned, you must be selecting a different row than what you want. You've pruned too much of essential problem away in an effort to simplify, but it's still clear what's wrong...
Consider that your input document might basically look like this:
<?xml version="1.0" encoding="UTF-8"?>
<table>
<tr class="calendar_row" data-eventid="12345">
<td>This IS NOT the tr you're looking for</td>
</tr>
<tr class="calendar_row newday singleevent" data-eventid="42064">
<td>This IS the tr you're looking for</td>
</tr>
</table>
The test @class="calendar_row"
won't match against the tr
you show, but it will match against the first row.
You could change your test to be contains(@class,'calendar_row')
instead, but that would match both rows. You're going to have to identify some content or attribute that's unique to the row you desire. Perhaps the @data-eventid
attribute would work -- can't tell without seeing your whole input file.