Я экспортирую данные столбчатой диаграммы из SSRS в формате XML и большую часть времени он отлично смотрится, но в некоторых случаях он получает/SeriesX/CategoryX/nodes. Когда .net читает эти данные в datatable, dat получает разделение на три связанные таблицы; Series0, Category0 и Value.Соответствие шаблону XSLT - Удаление предков
Мне нужно удалить/SeriesX/CategoryX/из этого:
<My_Location_Chart>
<Series0>
<Category0>
<Value Y="0.1111" />
</Category0>
</Series0>
<Series1>
<Category0>
<Value Y="0.2222" />
</Category0>
</Series1>
<Series2>
<Category0>
<Value Y="0.3333" />
</Category0>
</Series2>
</My_Location_Chart>
Так это выглядит следующим образом:
<My_Location_Chart>
<Value Y="0.1111" />
<Value Y="0.2222" />
<Value Y="0.3333" />
</My_Location_Chart>
Есть другие схемы, которые используют значение SeriesX и я не хочу чтобы ввернуть их вверх, но ни один из них не соответствует шаблону/SeriesX/CategoryX /, поэтому я хочу только совместить этот шаблон.
Я попытался удалить узлы категории. Это близко, но не совсем то, что мне нужно:
<xsl:template match="@*|node()" >
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="*[not(descendant-or-self::*[text()[normalize-space()] | @*])]"/>
<xsl:template match="rep:Category0" >
<xsl:apply-templates select="*" />
</xsl:template>
выше создает это:
<My_Location_Chart>
<Series0>
<Value Y="0.1111" />
</Series0>
<Series1>
<Value Y="0.2222" />
</Series1>
<Series2>
<Value Y="0.3333" />
</Series2>
</My_Location_Chart>
Любые предложения приветствуются. Я новичок в XSLT, чтобы легко обойтись. Благодаря!
Мне нравится простой. Я очистил значения элементов для ясности. Как новичок я читаю это и, кажется, имеет смысл, но он не меняет результат вообще. Я не могу понять, почему, потому что это выглядит хорошо для меня. My_Location_Chart находится под другими деревьями, так что технически это/Report/My_Location_Chart /, но это должно быть хорошо ... – BClaydon
"* My_Location_Chart находится под другими деревьями *" Тогда это не может работать так, как есть, потому что предполагается, что 'My_Location_Chart' является корневым элементом , Попробуйте изменить '' to '' или ''. Если он все еще не работает, отправьте репрезентативную выборку вашего ввода. –