For a sed solution, see further down in this answer.
Assuming that the a nodes are part of a well formed XML document, and that you would want to append .xhtml to the value of their href tags when the existing values starts with /entry/:
xml ed -u '//a[starts-with(@href, "/entry/")]/@href' \
-x 'concat(../@href,".xhtml")' file.xml >file-new.xml
This uses XMLStarlet (sometimes installed as xmlstarlet instead of just xml) and it will find the relevant a nodes and append .xhtml to their href attributes regardless where in the document they occur.
The result is saved to a new file here, but you may use xml ed --inplace ... to edit the file in place once you have made sure that it works.
Testing:
$ cat file.xml
<?xml version="1.0"?>
<root>
<a href="/entry/someFile1"/>
<a href="/entry/someFile2"/>
<a href="/entry/someFile3"/>
</root>
$ xml ed -u '//a[starts-with(@href, "/entry/")]/@href' -x 'concat(../@href,".xhtml")' file.xml
<?xml version="1.0"?>
<root>
<a href="/entry/someFile1.xhtml"/>
<a href="/entry/someFile2.xhtml"/>
<a href="/entry/someFile3.xhtml"/>
</root>
Using sed (which you would not use on a well formed XML file usually):
sed 's|<a href="/entry/[^"]*|&.xhtml|g' file.xml
This matches the string <a href="/entry/ followed by any number of characters that are not " (this would be the filename). This whole matching part is then replace with itself and the string .xhtml.
With sed -i, this would make the modification in place.
Testing (on the same file as above):
$ sed 's|<a href="/entry/[^"]*|&.xthml|g' file.xml
<?xml version="1.0"?>
<root>
<a href="/entry/someFile1.xhtml"/>
<a href="/entry/someFile2.xhtml"/>
<a href="/entry/someFile3.xhtml"/>
</root>