|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Data mapping / loading (?)
Jeff: I simplified your problem a little turning all of your value#n tags in source into straight value tags. The following command saxon -o combined.xml source.xml dest.xml Generates this output: file combined.xml <?xml version="1.0" encoding="utf-8"?> <mapping> <source href="source.xml"/> <dest href="dest.xml"/> <assign source="10" dest="Five plus five equals?"/> <assign source="0" dest="Five minus five equals?"/> </mapping> Regards, Dan ------------ file: source.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="source.xsl"?> <source> <value>10</value> <value>0</value> </source> file: dest.xml <?xml version="1.0"?> <dest> <question>Five plus five equals?</question> <question>Five minus five equals?</question> </dest> file: source.xsl <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output indent="yes"/> <xsl:variable name="dest" select='document("dest.xml")'/> <xsl:template match="/"> <xsl:element name="mapping"> <xsl:apply-templates select="source"/> </xsl:element> </xsl:template> <xsl:template match="source"> <xsl:element name="source" > <xsl:attribute name="href">source.xml</xsl:attribute> </xsl:element> <xsl:element name="dest" > <xsl:attribute name="href">dest.xml</xsl:attribute> </xsl:element> <xsl:for-each select="value"> <xsl:variable name="ipos" select="position()"/> <xsl:element name="assign" > <xsl:attribute name="source"> <xsl:value-of select="."/> </xsl:attribute> <xsl:attribute name="dest"> <xsl:value-of select="$dest/dest/question[position()=$ipos]"/> </xsl:attribute> </xsl:element> </xsl:for-each> </xsl:template> </xsl:stylesheet> --- Jeff Rafter <jeffrafter@e...> wrote: > Sorry for the vague subject-- I have been searching for a simple way to load > data from one XML file into another and haven't found exactly what I am > looking for. What I want to do is load an XML file with data values > (source) and load an XML file with some content (dest) and then move > contents from source to dest. I would like to create a third "mapping" file > that specifies how to move the data from one to the other, most likely using > XPath. The following is a simplified example of what I am looking for > > source.xml > ======= > <source> > <value1>10</value1> > </source> > > dest.xml > ====== > <dest> > <question>Five plus five equals?</question> > <answer name="value1"></answer> > </dest> > > mapping.xml > ========= > <mapping> > <source href="source.xml"/> > <dest href="dest.xml"/> > <assign source="source/value1" dest="dest/answer[@name='value1']"> > </mapping> > > I know it is most likely possible using XSLT but I haven't figured out how > to do it without copying the whole destination document-- which seems like > overkill when I only want to change a few nodes. Is XSLT the answer? Anyone > have any ideas? > > Thanks in advance, > Jeff Rafter > > > ------------------------------------------------------------------ > The xml-dev list is sponsored by XML.org, an initiative of OASIS > <http://www.oasis-open.org> > > The list archives are at http://lists.xml.org/archives/xml-dev/ > > To unsubscribe from this elist send a message with the single word > "unsubscribe" in the body to: xml-dev-request@l... __________________________________________________ Do You Yahoo!? Get email at your own domain with Yahoo! Mail. http://personal.mail.yahoo.com/
|
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
|
|||||||||






