I have some XML data that has mixed content XML tags that embed XHTML
tags, for instance:
<note>Somebod y wrote this note in XHTML and wanto to <a
href="link.html " target="_new">l ink</a> to a particular tag, and was
also pretty sure that they wanted the following
<ul><li>two</li><li>items</li></ul> to appear as a list. To make
matters worse <sarcastic>ho w could this be worse?</sarcastic>, the
XHTML can be mixed with our own tags.</note>
I am trying to transform this data with an XSLT into oddly formated
XHTML for display (I happen to be doing it server-side, with ASP.NET
2.0). The problem is that I need to preserve all of the embedded XHTML
tags in the XML document, while writing templates for all of our
custom content.
The only thing that I have successfully done so far is to write my own
templates for all of the XHTML tags, that output themselves and
process their children, for instance:
<xsl:template match="//b">
<b><xsl:apply-templates /></b>
</xsl:template>
There are way too many XHTML tag possibilities for me to handle though
(and I have to deal with all of the possible attributes, and output
them correctly too).
Is there a better way to do this, or if there isn't, does anyone have
an XSLT document that handles all (or most) of the XHTML tags that I
can include? I can force everyone to use namespaces if necessary (ie
<xhtml:b></xhtml:b>).
Desperately seeking help,
Luke Dalessandro 4 3161
If your xhtml really is in xhtml (ie is in the xhtml namespace) then you
can easily match on all the xhtml elements without having to list them
<xsl:template match="h:*" xmlns:h="http://www.w3.org/1999/xhtml">
.....
However I suspect that all you want to do is copy the content of a note
element in to the output as-is, in which case you don't need templates
at all, eg
<xsl:template match="note">
<div>
<xsl:copy-of select="node()"/>
</div>
</xsl:template>
David
David,
Thanks for the advice:
I can't use copy-of because of the nesting that is possible in our schema.
Notes may contain custom tags that need their templates applied for output.
If I use copy-of, they won't get transformed.
I'm not sure how to implement the first option. I don't want to write the
templates for all of the xhtml tags, I want to use templates that already
exist, or just copy them while rendering their inner contents with
templates.
I see how that matches the tags, but not how it transforms them correctly.
Thanks,
Luke
"David Carlisle" <da****@nag.co. uk> wrote in message
news:yg******** *****@penguin.n ag.co.uk... If your xhtml really is in xhtml (ie is in the xhtml namespace) then you can easily match on all the xhtml elements without having to list them
<xsl:template match="h:*" xmlns:h="http://www.w3.org/1999/xhtml"> ....
However I suspect that all you want to do is copy the content of a note element in to the output as-is, in which case you don't need templates at all, eg
<xsl:template match="note"> <div> <xsl:copy-of select="node()"/> </div> </xsl:template>
David I see how that matches the tags, but not how it transforms them correctly.
you want to do an identity transform on xhtml but recursively process
its content (which may not be the identity) so:
<xsl:template match="h:*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
xsl:copy (unlike copy-of) does a "shallow copy" that just generates an
element with the same name as the current node, then you copy any
attributes over then just recursively apply templates which will copy
any child text or xhtml but do whatever it does with your own specific
elements that have their own templates.
the above assumes xsl: and h: bound to appropriate namespaces of course.
David
Perfect!
Thanks
"David Carlisle" <da****@nag.co. uk> wrote in message
news:yg******** *****@penguin.n ag.co.uk... I see how that matches the tags, but not how it transforms them correctly.
you want to do an identity transform on xhtml but recursively process its content (which may not be the identity) so:
<xsl:template match="h:*"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template>
xsl:copy (unlike copy-of) does a "shallow copy" that just generates an element with the same name as the current node, then you copy any attributes over then just recursively apply templates which will copy any child text or xhtml but do whatever it does with your own specific elements that have their own templates.
the above assumes xsl: and h: bound to appropriate namespaces of course.
David This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Tom Szabo |
last post by:
Just wandering how can you close a browser remotely. In some web
applications the browser closes or refreshes periodically.
How is that done and how can it be done through PHP?
TIA,
Tom
|
by: Reid Nichol |
last post by:
Hello,
I was wondering if I could control how many bytes are in an int and
the byte order. In C/C++ I can use int32 but how do I do this in
python? How can I control byte order?
|
by: v I n O |
last post by:
hI Geeks
Please do let me know how do i find how many instances sql server
running on the single machine. or in the n/w my objective should with
help of C#/vb.net
|
by: James Salisbury |
last post by:
Hi,
I was checking my parent's website salisbury.cabrera.net on google by
entering villa rent spain cabrera I can see the required site, ranked at 4,
but I am concerend by the return at 1 and 5 in the list. Any ideas why
somone else may be using the text from my site, and how can I make an abuse
report?
Thanks
|
by: Frances Del Rio |
last post by:
http://www.emol.com/especiales/cocina_chilena/comida.asp
this page is so neat (goes in pop-up..) how was this done? how do you
give a layer (or div, I guess) a semi-transparency so you can still
see img under it? (and how do you do the scroll for the div?) I know
HTML very well, I also CSS and JavaScript, but am a bit mystified
here...
PLEASE respond by e-mail, fdr58@yahoo.com, my access to usenet is very
limited.. thank you..
| |
by: |
last post by:
Developing, building, and testing. How do it the best? Learning from the
world leader - Microsoft
I'm very interested in how the developing/build/testing workflow @ Microsoft
looks like. I think Microsoft as world leader in software developing
business must have a very good workflow. Does anyone know how the
development flow @ Microsoft looks like?
|
by: Supra |
last post by:
in vb6
listbox1.remove item 5
how will i do in vb.net?
regards
|
by: anushhprabu |
last post by:
#define q(k)main(){ return!puts(#k"\nPRABUq("#k")");}
q(#define q(k)main(){return!puts(#k"\nq("#k")");})
guys i'm working on this code.. i got it fromnet.. how this is working.. anyone pls.. it is printing the same content on screen.. how ya.. how it is.. how how how??
please...................
|
by: candra |
last post by:
Learn What Hackers Know?
-General Hacking Information
-Password Security
-Scanning, Fingerprinting And Similar Techniques
-How Hackers Attack Numerous Internet Services
-How Hackers Attack Web Servers, Cgis, PHP, ASP, Etc
-How Hackers Attack IRC, Instant Messaging, And Multiplayer Games
-Vulnerabilities Found In Platforms With Smaller Market Share
-How Hackers Attack Novell And Networks
|
by: belred |
last post by:
i just read this blog about how many objects (types) are loaded for a
hello world program in C#.
http://blogs.msdn.com/abhinaba/archive/2008/09/15/how-many-types-are-loaded-for-hello-world.aspx
how can you find out how many are loaded for a python program: print
'hello'
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
| |
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
| |
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |