|
Subject: [xsl] How to Get Nested Nodes From: Jeffry Proctor <jpgmt@xxxxxxxxxxxxx> Date: Thu, 22 Dec 2011 00:29:26 -0800 (PST) |
List of Contacts from: feed/entry/content/Contacts
Ultimately I would like
to use a few XSLT's to extract different datasets, my C#
component, will just
have a few functions, be somewhat xml, xslt agnostic,
getting the function's
corresponding XSLT from an xml (think ini file) to
transfrom and return the
datasets from the resulting xml; I'm choosing this over
a static
looping/switch/case node= xpath walking, if anything changes I'd have
to
re-code, I'd rather just update the offending xslt(s) and push that out to
the client, no install or dll issues, but I digress...
I'm trying to get a
list of contacts from the following xml source
<?xml version="1.0"
encoding="utf-8"?>
<?xml-stylesheet type="text/xsl"
href="_XSLT_Contacts_vb2.xsl"? >
<feed>
<title type="text">Contacts For
Jeffry</title>
<updated>2011-12-21T16:23:21.0989</updated>
<entry>
<title>contact: xray220</title>
<updated>2009-11-19T14:49:23.203Z</updated>
<content
type="application/vnd.zaner+xml">
<Contact id="1234"
xmlns="http://sites.google.com/site/jeffryproctor/">
<status>Active</status>
<emailAddress>jp@xxxxxxx</emailAddress>
<name>Jeffry Proctor</name>
</Contact>
</content>
</entry>
<entry>
<title>contact: xray221</title>
<updated>2009-11-19T14:49:23.203Z</updated>
<content
type="application/vnd.zaner+xml">
<Contact id="4321"
xmlns="http://sites.google.com/site/jeffryproctor/">
<status>Active</status>
<emailAddress>dv@xxxxxxx</emailAddress>
<name>David Vaughn</name>
</Contact>
</content>
</entry>
</feed>
I'd like the resulting xml to look like this
<?xml
version="1.0" encoding="UTF-8"?>
<ContactList
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2005/Atom>
<Contacts>
<contact>
<id>1234</id>
<name>Jeffry Proctor</name>
<emailAddress>jp@xxxxxxx</emailAddress>
<status>Active</status>
</contact>
<contact>
<id>4321</id>
<name>David Vaughn</name>
<emailAddress>dv@xxxxxxx</emailAddress>
<status>Active</status>
</contact>
</Contacts>
</ContactList>
Here is my
attempt/failure xslt, which I can easily abandon in favor or a better
layout
& technique.
<!--<?xml version="1.0" encoding="UTF-8"?>-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<xsl:template name="main"
match="feed"
xmlns="http://www.w3.org/2005/Atom">
<ContactList>
<contacts>
<xsl:call-template name="contact"/>
</contacts>
</ContactList>
</xsl:template>
<xsl:template
name="contact" match="entry">
<xsl:for-each select="content/Contact">
<Contact>
<id>
<xsl:value-of
select="@id"/>
</id>
<name>
<xsl:value-of select="name"/>
</name>
<emailAddress>
<xsl:value-of
select="emailAddress"/>
</emailAddress>
<status>
<xsl:value-of select="status"/>
</status>
</Contact>
</xsl:for-each >
</xsl:template>
</xsl:stylesheet>
Thanks in advance
JeffPGMT
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Schema-aware pretty-print, Murray McDonald | Thread | Re: [xsl] How to Get Nested Nodes, Wolfgang Laun |
| Re: [xsl] Schema-aware pretty-print, Murray McDonald | Date | Re: [xsl] Schema-aware pretty-print, XMLBlueprint Team |
| Month |