[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Dynamic recognition of element
>> 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|