2009-10-15 6 views
5

Дорогие друзья, добрый день. Моя проблема может быть в том, что это очень простой вопрос: как мы можем удалить корневой элемент из xml-файла с помощью xslt. Пример файла Xml, приведенный ниже.Как удалить корневой элемент из xml-файла

<Result> 
<Jobs id="1"> 
    <Job ID="000000" PositionID="0000"> 
    <Title>Development Manager - Investment Banking - Equities Business</Title> 
    <Summary><![CDATA[An experienced Development Manager with previous experience leading a small to mid-size team of developers in a Java/J2EE environment. A hands on role, you will be expected to manage and mentor a team of developers working on a mix of greenfield and maintenance projects.&#160;&#160; My client, a well known investment bank, requires an experienced Development Manager to join their core technology team. This t]]></Summary> 
    <DateActive Date="2009-10-06T19:36:43-05:00">10/6/2009</DateActive> 
    <DateExpires Date="2009-11-05T20:11:34-05:00">11/5/2009</DateExpires> 
    <DateUpdated Date="2009-10-06 20:12:00">10/6/2009</DateUpdated> 
    <CompanyName>ABC Technology</CompanyName> 
    </Job> 
</Jobs> 
</Result> 

Итак, я хочу, выход, как показано ниже

<Jobs> 
    <Job ID="000000" PositionID="0000"> 
    <Title>Development Manager - Investment Banking - Equities Business</Title> 
    <Summary><![CDATA[An experienced Development Manager with previous experience leading a small to mid-size team of developers in a Java/J2EE environment. A hands on role, you will be expected to manage and mentor a team of developers working on a mix of greenfield and maintenance projects.&#160;&#160; My client, a well known investment bank, requires an experienced Development Manager to join their core technology team. This t]]></Summary> 
    <DateActive Date="2009-10-06T19:36:43-05:00">10/6/2009</DateActive> 
    <DateExpires Date="2009-11-05T20:11:34-05:00">11/5/2009</DateExpires> 
    <DateUpdated Date="2009-10-06 20:12:00">10/6/2009</DateUpdated> 
    <CompanyName>ABC Technology</CompanyName> 
    </Job> 
</Jobs> 

Таким образом, нет больше

<Result></Result> 

тегов в файле XML. Pls. Помогите. Заранее спасибо.

+1

Вы можете форматировать ваш вопрос таким образом, мы можем увидеть, что это ваш просят? похоже, что вам нужно разобраться < – Rippo

ответ

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

<!-- template for the document element --> 
<xsl:template match="/*"> 
    <xsl:apply-templates select="node()" /> 
</xsl:template> 

Идентичность копии шаблона все, как есть, в то время как шаблон для элемента документа только заботится о дочерних узлов (передав их в шаблон идентичности), а не копировать сам корневой узел.

Если вы хотите сохранить <summary> как CDATA по какой-то причине вам нужно будет

<xsl:output cdata-section-elements="summary" /> 
+1

Этот способ копирования элементов и игры с ними очень помог мне в XSLT. Большое спасибо за этот ответ. – 2011-05-09 17:47:01

+0

@geekam Спасибо за ваш отзыв! :) – Tomalak

Смежные вопросы