Я хочу удалить пустые атрибуты из xml, а также разбить его на основе определенного элемента. Я создал два xsl для разделения и удаления пустых атрибутов отдельно, его работоспособность. Но мне нужно объединить эти два xsl, чтобы после удаления пустых атрибутов xml нужно было разделить на основе определенного элемента.Сплит XML и удаление пустых атрибутов с помощью xslt 2.0
RemoveAttribute XSLT:
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*[not(normalize-space(.))]">
<xsl:if test="descendant::*/@*[not(normalize-space(.))]">
<xsl:copy />
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Расщепление XSLT:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/*" >
<xsl:result-document href="ure.xml">
<xsl:element name="Employee" >
<xsl:attribute name="xsi:schemaLocation">sample.xsd</xsl:attribute>
<xsl:copy-of select="/Employee/*"/>
</xsl:element>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>
Входной XML:
<?xml version="1.0" encoding="UTF-8"?>
<Enroll>
<Department id="x1" name="">
<members id ="" name="lio">ds</members>
</Department>
<Employee>
<address id="s1" no=""></address>
<domain id="" no="34"></domain>
</Employee>
</Enroll>
output_one XML:
<Department id="x1" name="">
<members id ="" name="lio">ds</members>
</Department>
Ouput + _TWO Xml:
<Employee>
<address id="s1" ></address>
<domain no="34"></domain>
</Employee>
Вывод должен быть два отдельный файл XML, который должен быть расщепленным XML часть и пустые атрибуты должны быть удалены.
Я пробовал его с помощью шаблонов Apply, include и xml pipelining, но я не мог заставить его работать.
Любая помощь будет очень оценена.
спасибо. Но мне также нужно разделить и на другие элементы, один входной XML-файл должен быть разделен на два отдельных xmls, а также удалить пустые атрибуты. В вышеприведенном xml отдел также должен быть разделен на отдельный xml, и пустые атрибуты должны быть удалены. –
В вашем вопросе вы сказали: «Выход должен быть ** одним xml-файлом **, который должен иметь разделенную часть xml и пустые атрибуты необходимо удалить». а затем предоставил пример с одним элементом «Сотрудник». Если это не тот фактический результат, который вы хотите, можете ли вы предоставить нужный результат? – JLRishe
Спасибо за ваше время JLRishe. Я обновил сообщение с помощью ouput xmls. –