2016-01-06 3 views
0

Мне нужно проверить XML-файл на повторяющиеся значения в теге. Ниже приведен пример небольшой части файла. Значение тега 'csvpartname' должно быть проверено на дубликаты, потому что его можно использовать только один раз. Я не знаю, как это сделать, поэтому любая помощь очень приветствуется!как фильтровать повторяющиеся значения в тегах xml

<?xml version="1.0" ?><!DOCTYPE NmLoader SYSTEM "standardX24.dtd"> 
<NmLoader> 

<csvPart handler="wt.part.LoadPart.createPart" > 
    <csvuser></csvuser> 
    <csvpartName>Configured Fan</csvpartName> 
    <csvpartNumber>0000023860</csvpartNumber> 
    <csvtype>separable</csvtype> 
    <csvgenericType>standard</csvgenericType> 
    <csvcollapsible></csvcollapsible> 
    <csvlogicbasePath></csvlogicbasePath> 
</csvPart> 

<csvPart handler="wt.part.LoadPart.createPart" > 
    <csvuser></csvuser> 
    <csvpartName>Configured Fan</csvpartName> 
    <csvpartNumber>0000023861</csvpartNumber> 
    <csvtype>separable</csvtype> 
    <csvgenericType>standard</csvgenericType> 
    <csvcollapsible></csvcollapsible> 
    <csvlogicbasePath></csvlogicbasePath> 
</csvPart> 

</NmLoader> 

ответ

0

Этот код проверяет, если csvpartName появляется более одного раза в XML

<?xml version='1.0' encoding='ISO-8859-1'?> 
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> 

<xsl:key name="k" match="csvPart" use="csvpartName" /> 

<xsl:template match='/'> 
    <html> 
    <body> 
<xsl:apply-templates select='//csvpartName'/> 
    </body> 
    </html> 
</xsl:template> 

<xsl:template match='*'> 

<xsl:if test='count(key("k", .)) &gt; 1'> 
<p> 
<xsl:value-of select='.'/> is used 
<xsl:value-of select='count(key("k", .))'/> times 
</p> 
</xsl:if> 
</xsl:template> 

</xsl:stylesheet> 
+0

уххх, как я запускаю этот код и связать его с файлом XML Я хочу, чтобы проверить? –

+0

Самый простой способ - сохранить приведенный выше текст (например, CheckPartName.xsl) в той же папке, что и ваш .xml-файл, и изменить первую строку в вашем XML-файле, чтобы прочитать Затем вы сможете открыть XML-файл в любом современном браузере. – FonnParr

+0

Спасибо, FonnParr, он отлично работает! –

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