2016-03-08 2 views
-1

Заменить поверочного элемент с его внутренним текстом которого класс «TAGGED_ITEM» в нескольких строках с колонкой типа XMLЗаменить XML Span Элемент с внутренним текстом Span тегов в SQL Server

<Item title="1234" xmlns="http://www.imsglobal.org/xsd/imsqti_v2p2"> 
     <ItemBody> 
     <div class="item_text"> 
         <div> 
          <span class="TAGGED_ITEM " id="c1_ae1">This is a map on a grid.</span> 
          <span class="TAGGED_ITEM " id="c1_ae2"> It shows a car.</span> 
         </div> 
<span class="TAGGED_ITEM " id="c1_ae3"> It shows a car on Road.</span> 
        </div> 
     </ItemBody> 
    </Item> 

После того, как элемент обновляется его должен выглядеть следующим образом.

<Item title="1234" xmlns="http://www.imsglobal.org/xsd/imsqti_v2p2"> 
     <ItemBody> 
     <div class="item_text"> 
         <div> 
          This is a map on a grid. 
          It shows a car. 
         </div> 
          It shows a car on Road. 
        </div> 
     </ItemBody> 
    </Item> 
+1

Вы [уже спрашивали (и получили ответы!)] (HTTP: // stackoverflow.com/questions/35873792/replace-the-xml-element-with-new-element-in-sql-server) почти такой же вопрос раньше - как это отличается? Пожалуйста, ** ** не спрашивайте в основном тот же вопрос снова и снова! –

+0

@marc_s этот вопрос отличается от предыдущего вопроса. Здесь я ищу замену конкретных существующих элементов Span, которые имеют значение атрибута класса «TAGGED_ITEM» с внутренним текстом духовки. Полностью отличается от предыдущего вопроса. – Chat

ответ

1

Этот вопрос имел конкретную проблему пространства имен, которая, вероятно, вызвала вопрос. Устранение пространств имен на match= действительно решает проблему. Таким образом, тождественное преобразование и пространство имен нейтрального соответствия дает желаемый результат:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
    <xsl:template match="node()|@*"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="*[local-name() = 'span']"> 
    <xsl:value-of select="text()" /> 
    </xsl:template> 
</xsl:stylesheet> 

Результат:

<?xml version="1.0"?> 
<Item xmlns="http://www.imsglobal.org/xsd/imsqti_v2p2" title="1234"> 
    <ItemBody> 
    <div class="item_text"> 
        <div> 
         This is a map on a grid. 
         It shows a car. 
        </div> 
       </div> 
    </ItemBody> 
</Item> 
+0

Привет, Спасибо за ответ, но я ищу Sql Query в его решении. – Chat

+1

@Chatrapathi: Хорошо. Отправил его, потому что на нем был тег 'XSLT'. Я вижу, вы убрали его сейчас. Без проблем. – zx485