2013-07-29 3 views
0

Я работаю с функцией поиска и замены TextWrangler. У меня есть папка файлов XML, которые все включают этот тег:TextWrangler - удаление пространств имен из XML

<song xmlns="http://openlyrics.info/namespace/2009/song" version="0.8" createdIn="OpenLP 2.0.1" modifiedIn="OpenLP 2.0.1" modifiedDate="2013-06-23T21:33:21"> 

Я хотел бы, чтобы удалить пространство имен и другую информацию из тега и получить именно это:

<song> 

Моя проблема имеет два аспекта:

  1. Во-первых, я не могу получить TextWrangler, чтобы найти что-нибудь, что содержит угловые скобки. Я не знаю, как искать буквенную угловую скобку.
  2. Измененная часть = часть тега отличается для каждого файла. Поэтому мне нужно что-то, что найдет весь текст, содержащийся в теге, независимо от того, что он говорит.

Любые предложения?

ответ

0

Это действительно стоит приобрести достаточное знакомство с XSLT для такого рода задач. Выполнение этого в текстовом редакторе всегда будет иметь ограничения (например, ваш код, скорее всего, будет зависеть от атрибутов, находящихся в определенном порядке). Это, вероятно, так же просто, как это:

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

<xsl:template match="*"> 
    <xsl:element name="{local-name()}"> 
    <xsl:apply-templates/> 
    </xsl:element> 
</xsl:template> 

</xsl:transform> 

Это будет фактически удалить пространство имен и атрибуты из всех элементов, а не только элемента песни, но это может быть легко изменено путем добавления другого правила шаблона.

+0

Спасибо за подсказку. Это выполняет свою работу. Тем не менее, я хотел бы использовать этот шаблон в сочетании с другим шаблоном, который фактически определяет стиль XML. Я пытался поставить этот шаблон перед собой, но теперь мой не работает. Как использовать оба шаблона в одном и том же XSLT? – brohrig

+0

Вы можете написать конвейер преобразований либо как одну таблицу стилей, либо как последовательность отдельных таблиц стилей. Второй дает лучшую модульность и повторное использование, но немного сложнее. Чтобы сделать это в одной таблице стилей, запишите результат первого шаблона (или преобразования) в переменной, а затем примените шаблоны к переменной в другом режиме. –

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