How can I dynamically build the XPath in the case to display
streetNmbr?
<xsl:value-of select="//*/ns1:address1"/>
This will just match anything with an ns1:address1 node.
I don't know the structure of the data you are using so I have provided an
example of dynamically building an XPath using the following.
UserDataFile.xml
<?xml version="1.0"?>
<theStateTheUserHaveProvided addressVO="CAAddressVO"/>
AddressFile.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="dynamicAddress.xslt"?>
<test xmlns:ns1="test">
<ns1:USAddressVO>
<ns1:address1>address 1</ns1:address1>
</ns1:USAddressVO>
<ns1:CAAddressVO>
<ns1:address1>address 2</ns1:address1>
</ns1:CAAddressVO>
<ns1:CTAddressVO>
<ns1:address1>address 3</ns1:address1>
</ns1:CTAddressVO>
</test>
dynamicAddress.xslt file
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns1="test" xmlns:ota="test2">
<xsl:output method="xml" version="1.0"/>
<xsl:template match="/">
<base>
<xsl:apply-templates/>
</base>
</xsl:template>
<xsl:template match="test">
<xsl:variable name="Address"
select="document('UserDataFile.xml')/theStateTheUserHaveProvided/@addressVO"/>
<ota:StreetNmbr>
<xsl:value-of
select="*[local-name()=$Address]/ns1:address1"/>
</ota:StreetNmbr>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
This will produce a file as follows, based on user data provided in the
UserDataFile.xml
<?xml version="1.0"?>
<base xmlns:ns1="test" xmlns:ota="test2">
<ota:StreetNmbr>address 2</ota:StreetNmbr>
</base>
Edward Middleton
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list