Hey everyone,I am trying to write some python to find and replace values/variables in XML tags. In the XML attached below, you will see these variables embedded in a various tags and enclosed in % (ie %SITEDESCR%). I've used the following code to find and replace some values.from xml.etree import ElementTree as et
import arcpy
BEGDATEPARAM = arcpy.GetParameterAsText(0)
ENDDATEPARAM = arcpy.GetParameterAsText(1)
tree = et.parse(r"Z:\ESRI\Figure_Sourcing\Figures\Metadata\IOR_Run_Metadata_2009\ECOSITEPHASE_R.xml")
tree.find('.//begdate').text = BEGDATEPARAM
tree.find('.//enddate').text = ENDDATEPARAM
tree.write(r"Z:\ESRI\Figure_Sourcing\Figures\Metadata\IOR_Run_Metadata_2009\ECOSITEPHASE_R_1.xml")
 
There are a couple issues I am coming up with that I can't seem to solve:1. Replacing the whole value in a tag is easy because that's what tree.find('.//begdate').text = BEGDATEPARAM will do, but if I have a paragraph of words in a tag and I only want to replace one word (variable) in it, I'm not sure how to make that happen. Example is in the <abstract> tag, where there is a sentence with a variable called %SITEDESCR%. I just want to replace the  variable, not the whole sentence.2. The second issue I am having is trying to replace values in tags where the tag and tag tree path is identicle. The structure at the bottom of the XML where you see 4 tags called <placekey>, I want to replace the value in the first placekey tag, but I want the values of the remaining 4 tags to remain the same. I can't seem to figure out how to select that first tag and ignore the rest.[HTML]<metadata>  <idinfo>    <citation>      <citeinfo>           <origin>My Company</origin>           <pubdate>05/04/2009</pubdate>           <title>POLYGONS</title>           <geoform>vector digital data</geoform>           <onlink>\\ArcGISDevelopment\2009 Geodatabase\PDA_STD_05_25_2009.gdb</onlink>       </citeinfo>    </citation>  <descript>       <abstract>This dataset represents the mapped polygons developed from the field data for the %SITEDESCR%.</abstract>       <purpose>This dataset was created to accompany the clients Pre-Disturbance Assessment and Conservation and Reclamation Plan.</purpose>   </descript><timeperd>     <timeinfo>      <rngdates>          <begdate>%begdate%</begdate>          <begtime>unknown</begtime>          <enddate>%enddate%</enddate>          <endtime>unknown</endtime>        </rngdates>      </timeinfo>      <current>ground condition</current>    </timeperd>  <status>      <progress>Complete</progress>      <update>None planned</update>   </status> <spdom>    <bounding>        <westbc> -110.541628</westbc>        <eastbc> -110.535713</eastbc>        <northbc> 54.643033</northbc>        <southbc> 54.639832</southbc>      </bounding>   </spdom> <keywords>    <theme>        <themekt>POLYGONS</themekt>        <themekey>Polygon</themekey>     </theme>    <place>        <placekey>%SITEID%</placekey>        <placekey>Alberta</placekey>        <placekey>Canada</placekey>        <placekey>North America</placekey>     </place>[/HTML]