Deleting elements from xml doc.

Hello,

I am stuck trying to apply the following logic to the below xml:
<?xml version='1.0' encoding='ISO-8859-1'?>
<Collection>
   <Book Id='1' Locator='Yes'>
      <Title>Principle of Relativity</Title>
      <Author>Albert Einstein</Author>
      <Genre>Physics</Genre>
   </Book>
   <Book Id='2'>
      <Title>Cosmos</Title>
      <Author>Carl Sagan</Author>
      <Genre>Cosmology</Genre>
   </Book>
</Collection>

Read the "Locator" attribute from the Book element, in case it is "Yes" 
.....delete the entire book element, so that the o/p now looks like:

<?xml version='1.0' encoding='ISO-8859-1'?>
<Collection>
   <Book Id='2'>
      <Title>Cosmos</Title>
      <Author>Carl Sagan</Author>
      <Genre>Cosmology</Genre>
   </Book>
</Collection>

It would be very helpful if somebody can provide a little code on how to 
achieve this?

Thanks.
0
Gaurav (24)
10/19/2007 4:06:15 AM
dotnet.xml 7266 articles. 0 followers. Follow

5 Replies
435 Views

Similar Articles

[PageSpeed] 20

Gaurav wrote:

> Read the "Locator" attribute from the Book element, in case it is "Yes" 
> ....delete the entire book element, 


With XSLT you can use the identity transformation plus a template 
preventing that Book[@Locator = 'Yes'] is being processed e.g.

<xsl:stylesheet
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">

   <xsl:template match="@* | node()">
     <xsl:copy>
       <xsl:apply-templates select="@* | node()"/>
     </xsl:copy>
   </xsl:template>

   <xsl:template match="Book[@Locator = 'Yes']"/>

</xsl:stylesheet>

-- 

	Martin Honnen --- MVP XML
	http://JavaScript.FAQTs.com/
0
mahotrash (1778)
10/19/2007 12:20:33 PM
Thanks Martin. I am fairly new to xml transformation etc.... so transforming 
the input xml file against the code you mentioned below would do the trick?


"Martin Honnen" wrote:

> Gaurav wrote:
> 
> > Read the "Locator" attribute from the Book element, in case it is "Yes" 
> > ....delete the entire book element, 
> 
> 
> With XSLT you can use the identity transformation plus a template 
> preventing that Book[@Locator = 'Yes'] is being processed e.g.
> 
> <xsl:stylesheet
>    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>    version="1.0">
> 
>    <xsl:template match="@* | node()">
>      <xsl:copy>
>        <xsl:apply-templates select="@* | node()"/>
>      </xsl:copy>
>    </xsl:template>
> 
>    <xsl:template match="Book[@Locator = 'Yes']"/>
> 
> </xsl:stylesheet>
> 
> -- 
> 
> 	Martin Honnen --- MVP XML
> 	http://JavaScript.FAQTs.com/
> 
0
Gaurav (24)
10/19/2007 3:06:00 PM
Gaurav wrote:
> Thanks Martin. I am fairly new to xml transformation etc.... so transforming 
> the input xml file against the code you mentioned below would do the trick?

Yes. With the .NET framework 2.0 or later use 
System.Xml.Xsl.XslCompiledTransform to perform the transformation.

-- 

	Martin Honnen --- MVP XML
	http://JavaScript.FAQTs.com/
0
mahotrash (1778)
10/19/2007 3:29:04 PM
I am using .NET framework 1.1.

I transformed the file against the .xslt and the result is:
Carl SaganCosmology

What is required to get the following result:
<Collection>
   <Book Id='2'>
      <Title>Cosmos</Title>
      <Author>Carl Sagan</Author>
      <Genre>Cosmology</Genre>
   </Book>
</Collection>

Thanks a lot for all your help.

"Martin Honnen" wrote:

> Gaurav wrote:
> > Thanks Martin. I am fairly new to xml transformation etc.... so transforming 
> > the input xml file against the code you mentioned below would do the trick?
> 
> Yes. With the .NET framework 2.0 or later use 
> System.Xml.Xsl.XslCompiledTransform to perform the transformation.
> 
> -- 
> 
> 	Martin Honnen --- MVP XML
> 	http://JavaScript.FAQTs.com/
> 
0
Gaurav (24)
10/19/2007 4:12:01 PM
Gaurav wrote:
> I am using .NET framework 1.1.

Then you need to use System.Xml.Xsl.XslTransform.

> I transformed the file against the .xslt and the result is:
> Carl SaganCosmology

I don't understand why you would get that result, unless you run the 
transformation inside of a browser which then renders the contents of 
elements in the result document.
Please tell us how you run the transformation and how you look at the 
result.


-- 

	Martin Honnen --- MVP XML
	http://JavaScript.FAQTs.com/
0
mahotrash (1778)
10/19/2007 4:32:00 PM
Reply:

Similar Artilces:

Getting an error in my xml schema editor code.
Hi, I have an xsd file like this. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="generic" elementFormDefault="qualified" targetNamespace="generic"> <xsd:element name="bookstore" type="bookstoreType"/> <xsd:complexType name="bookstoreType"> <xsd:sequence maxOccurs="unbounded"> <xsd:element name="book" type="bookType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="bookType&q...

How to Recover Deleted Sent Mail?
While trying to delete very old "Sent" mail I seem to have deleted all "Sent" mail. Is there a way of recovering this mail? Have you closed Outlook since deleting the old sent mail? http://www.howto-outlook.com/howto/restoredeleteditemsfromanoutlookpst.htm might help. Next time, archive the items you want removed from your active .pst file. --� Milly Staples [MVP - Outlook] Post all replies to the group to keep the discussion intact. All unsolicited mail sent to my personal account will be deleted without reading. After furious head scratching, Sidney Friedman as...

Cannot delete subreport
I am using Access 2003 and have a report I did a while back with a simple subreport. I want to remove the subreport but for the life of me can't figure out how to do it. Any help would be greatly appreciated. Thanks. Hi - When you say "remove the sub report", what do you mean? Do you want to delete the entire subreport control containing the subreport, or do you want to keep the control, but change the report contained in it? The first is easy - select the control by clicking once on it once, then press delete. For the second, click the control once, then set ...

XPathDocument and retrieving xml string
I load an xml stream into a xpathdocument type, compile a xpath expression and select to specific node. I find the node and wish to return the innerxml of that node. When I use value of the current node I get back the "values" of the child nodes but no formatted xml which I need for transformations later in the sequence. Is there a way to pull pure xml from the xpathdocument? Robert Strickland wrote: > I load an xml stream into a xpathdocument type, compile a xpath expression > and select to specific node. I find the node and wish to return the innerxml > of that node....

Rule for Deleted Items
I am being told that there is a rule in place on my Exchange server that will not empty the deleted items folder every 30 days for certain users in my organization. I found a recipient policy in System Manager that says "Users Excluded from Mailbox Cleanup" but it only shows 2 users and not the 3 I was told about. But I have confirmed that the missing person has email in her deleted items folder going back to 2005 so it must be working. Is there any other location I should be looking? Also, we just had someone come in and migrate our Exchange environment from 2000 to a new...

cannot delete message from deleted items
I have a message in my deleted items folder that when choosing delete opens the McAfee box warning of potential virus and wants me to choose open or do not open, but will not delete. I have tried choosing another file and holding ctrl and choosing the file I want deleted and then choosing delete, I have tried moving it to the desktop but it will only copy there, I have tried every form of delete possible. I need help. Anyone know how? Outlook 2002. Can you empty the deleted items folder entirely? Or turn off the McAfee scanning temporarily to see if it makes a difference? Julie wr...

I can not delete a duplicate personal folders list #2
Vall... amazing that there isn't an easy fix for this. The instructions provided simply don't work ( tools-email accounts-view change email accounts-deliver to new account-finish-close outlook and reopen ), and none of the other offered explanations have worked either. As this is such a common problem; why hasn't microsoft provided a very EASY fix? I am more confused ( and frightened ) and don't want to make the problem worse! Your profile is corrupt, probably based on an incorrect migration of your ..pst file. Create a new mail profile and configure it to use your exi...

Retrieval of Deleted Items After Being Deleted from the Deleted Items File
I deleted a number of important emails from the deleted items file in Outlook 2000. This may sound stupid, but I completely emptied the deleted items file instead of deleting them one by one. Pretty stupid, huh. Anyone. Can they be retrieved? Please help. Thanks. Sorry for sending this again but I seem to be computer illiterate and it has taken me some time to explain the whole situation. Thanks again. unless you use Exchange server with deleted retention enabled, you are most likely out of luck, but you can try something that might help.... http://www.outlook-tips.net/howto/r...

Making changes to customizations.xml and re-importing
On one of my first installations, using the wizard, I made the mistake of renaming accounts to vendors. Using customization, I went into the account entity and changed every reference to vendor to account that I could. But in some of the public views, like when I click account using Internet Explorer the first column says vendor name. If I export customizations and open the customizations.xml in FrontPage I can find all the references to vendor name. [We have a graphic design department, so we are a little familiar with XML, but the inpact of changes on MS CRM 3.0. They feel it is s...

Delete macros
I am using Excel 2002. When I click on Tools->Macro->Macros... i see 2 macros. The problem I am having is that I can't delete these macros, the delete button to the right is grayed out. How can I delete these macros? Hi maybe the macros are protected. Try hitting ALT + F11 to open the VBA editor and try to delete the macros / modules there -- Regards Frank Kabel Frankfurt, Germany excel777 wrote: > I am using Excel 2002. When I click on Tools->Macro->Macros... i see > 2 macros. The problem I am having is that I can't delete these > macros, the delete button to ...

Serialization with embedded elements
If I have the following XML data: <myelement color="green">Email (<numemails/>), Vmail (<numvmails/>)</myelement> and I deserialize it, then serialize it, I get the following: <myelement color="green">Email (), Vmail () <numemails/> <numvmails/></myelement> I cannot figure out how to use XML serialization to give me the same data after the roundtrip with the serializer. Admittedly, I am a newbie with XML serialization, so I hope the answer is obvious. I understand the reason why it's not currently working for me, becaus...

deleting email in outlook, freezes before i can delete
i have a file with pics that symetec scanner says is to large. i can receieve email but cannot send any. it freezes before i can delete and says non responding. Hi All, I want to re-raise the old issue of Fax numbers showing up in the Outlook Address book when one is sending an email. I know that this can be stopped by prepending the Contact's fax number with a letter so that Outlook doesn't see it as a valid fax number and therefore doesn't list it. What's always puzzled me, however, is that this fix doesn't work if the fax numbers are changed using an export to CSV...

OK to delete Deleted Items folder?
I'm afraid I'll have to delete my Deleted Items folder in Outlook 2000. When I try to empty the folder I get a "The messaging interfce has returned an unknown error. If the problem persists Restart Outlook" message. Is it possible to delete the entire folder and replace it with an empty new one? Will it create any problems? TIA Henrik Not possible. Run scanpst.exe against your pst-file to scan it for errors first. -- Robert Sparnaaij [MVP-Outlook] www.howto-outlook.com Tips of the month: -What do the Outlook Icons Mean? -Create an Office 2003 CD slipstreamed with Se...

deserialising xml files with no namespace
I've created some c# classes from Xsds. The classes have namespace attributes in the XmlRootAttributes. Accordingly, they will NOT deserialize with the XmlSerializer unless the same namespace is defined. I've prepared a temporary fix by loading the xml as an XmlDocument, amending the first element to include the namespace, serialising this to a string and deserialising to my classes. But surely there is an easier way.... Iain Iain wrote: > I've created some c# classes from Xsds. > > The classes have namespace attributes in the XmlRootAttributes. > > Accord...

How to delete chart
I created a histogram and want to delete it. I select it and the faint double border apperars. There are no square handles like in 2003. Then I press the Delete key. The faint double border goes away replaced by a single thin black border. The chart is still there and is not able to be selected at all. I entered "delete chart" in the Excel Help window, and there was nothing at all on deleting a chart. Ditto for "remove chart." I got no help searching on the internet either. I have Excel 2007 and Windows XP Professional When the border changes, can you press Delete a...

Having trouble with extra rows at the bottom of the doc
How do I delete the extra rows at the bottom of a doc. I have inherited a document that has 60 rows of data and 3682 rows of empty cells that have the boarder set. When I select and delete them, new ones reappear. I have turned the cell boards off and it still creates empty cells with the boarder. Is there any way to delete these rows? -ken Ken, Are you selecting and then deleting and then saving? HTH, Andy Ken Excel has a habit of retaining "used" cells way beyond where you are currently working. On a worksheet hit CRTL + END to see where you wind up. If far below and...

Delete blank Last page
In a word document where the last page is blank due to editing or whatnot, how do you get rid of the frigg' thing. This is a Visio newsgroup - your question was about Word. However, I have had this problem as you have. Narrowing the margins and line spacing on the page previous to the last may get rid of this annoying "blank" page for you. - Jeff Chapman "silkies" <silkies@discussions.microsoft.com> wrote in message news:BDCC1FF1-50D0-42CE-BA84-868CB26A43AC@microsoft.com... > In a word document where the last page is blank due to editing or > whatnot...

SelectSingleNode returning undefined value:imsmanifest.xml
I tried so many ways to select the node but its not working, please help. I want to research by the identifier in imsmanifest.xml file, the node could be item or resource. XmlDocument doc = new XmlDocument(); try { string node = Request.QueryString["node"]; //getting nodeid from query string doc.Load(Session["xmlFile"].ToString()); //load xml file from session variable //Create an XmlNamespaceManager for resolving namespaces. XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); //there are two namespaces not sure i...

Deleting an email
I have an email (with a file attached) that is "hung up" in my outbox of Microsoft Outlook. Now I can't send or receive emails in Outlook. How can I delete the email that is "hung up"? Define hung up. Is it trying to send it? If so, disconnect your connection while it's trying to send and wait. It will time out after a bit and you should be able to delete it. Reconnect. "Aaron Hurliman" <AaronLHurliman@aol.com> wrote in message news:03b001c34f39$0fb61ff0$a301280a@phx.gbl... > I have an email (with a file attached) that is "hung up&q...

Recovering Unrecoverable Deleted Public Folders
Long, sad story with a punch line (which is worth getting to): Exchange 2003. Ran into a situation where a user deleted 10 public folders by mistake. Using Recover Deleted Items to retrieve them, got back five of the folders (the ones that were empty in the first place) but we received the following error message when attempting to recover the other five (the ones with actual stuff in them): "Outlook was unable to recover some or all of the items in this folder. Make sure you have the required permissions to recover items in this folder and try again. If the problem persists contact you...

How do I delete a message in my outbox that contains a large file
I tried to send an email containing a large enclosure. Too large to send and now the message is stuck in my outbox. How do I delete the message? I have tried the normal route - cut, delete, but it stays in the outbox and slows down my send/receive capabilities "Lillian" <Lillian@discussions.microsoft.com> wrote in message news:C11E7BA3-C410-48CC-8B15-F6EA284665E7@microsoft.com... > I tried to send an email containing a large enclosure. Too large to send > and > now the message is stuck in my outbox. How do I delete the message? I > have >...

#Deleted
Have a rown in a table that contains the value '#Deleted' in every field. Want to actually delete this row from the table. Tried to delete, it appears that the row is deleted, I exit the table then open the table back up, and the row still exists with the value '#Deleted'. Tried to Compact and Repair.... Still receiveing the same result. How can I remove this row from the table????? The trick is to replace the table with another table populated the *other* records in your bad table. Details: Recovering from corruption: Some table rows show #Deleted at: http:...

outlook deletes inbox mail
On about three occaisions, my computer has restarted itself while Outlook Express, and sometimes other applications have been open, without my prompting it to do so. Upon rebooting, my Outlook inbox messages are completely wiped out, however, my sent folders and deleted messages, address book, ect. remain the same, and with no data lost. Can someone tell me what has happened, or perhaps how I can recover these lost emails? Any help would be greatly appreciated. Thank you, C.C. Outlook or Outlook Express? If Outlook Express and you search your drive (use advanced option for hidden f...

Can I delete this from ADSI?
Hi all, I am upgrating Exchange 2K to Exchange 2K3 and removed the Mobile information Server (which we never used it). But, I can see the CN=Microsoft-Mobile-Information-Server under configuration -->Services from ADSIedit. Can I safely delete this? or If I do not delete this, wii it have any issue with exchange 2003 mobile? Thanks! Exchange Server 2003 mobility features do not rely on that. Saving a LDIF dump may be a good idea before you delete - this provides ability to recreate the object if required. -- Bharat Suneja MVP - Exchange www.zenprise.com NEW blog location: www.e...

Can I recover deleted archived .pst files?
I accidently deleted all of my archived folders, now I need to recover them, is there any way? I had hundreds of e-mails saved that of course I need. Sue State your Outlook version and information store. State how you deleted the files. -- Russ Valentine [MVP-Outlook] "royalpei" <royalpei@discussions.microsoft.com> wrote in message news:B8236C3C-C139-4B03-B2ED-5B135DE9DCC1@microsoft.com... >I accidently deleted all of my archived folders, now I need to recover >them, > is there any way? I had hundreds of e-mails saved that of course I need. > > Sue &q...