Dave the Golfer Ответов: 1

Как отсортировать XML-файл


Я пытаюсь отсортировать данные в xml-файле перед созданием отчетов об этих данных.

Мой xml-файл выглядит так
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE SpringOpen SYSTEM "Seniors_Open.dtd"[]>
<SpringOpen>
  <Team>
    <FirstName1>Joe</FirstName1>
    <Surname1>Soap</Surname1>
    <Club1>Man United</Club1>
     <TeamNumber>2</TeamNumber>
  </Team>
<Team>
    <FirstName1>John</FirstName1>
    <Surname1>Doe</Surname1>
    <Club1>Aintree</Club1>
     <TeamNumber>1</TeamNumber>
  </Team>
</SpringOpen>


Я пытаюсь отсортировать данные по элементу TeamNumber

мой файл xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:strip-space elements="*"/>
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="SpringOpen">
    <xsl:copy>
      <xsl:apply-templates select="Team">
        <xsl:sort select="TeamNumber" data-type="text"/>
      </xsl:apply-templates>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>


Что я уже пробовал:

Мой VB.net есть
Dim xslt As New XslCompiledTransform()
        xslt.Load(Path & "\Spring_Open.xsl")

        ' Execute the transform and output the results to a file.
        xslt.Transform(Path & "\Spring_Open.xml", Path & "\sortedSpring_Open.xml")


Ошибка, которую я получаю при выполнении преобразования, такова
System.Xml.XmlException: 'For security reasons DTD is prohibited in this XML document. To enable DTD processing set the DtdProcessing property on XmlReaderSettings to Parse and pass the settings into XmlReader.Create method.'


Будучи абсолютным новичком, я не понимаю, что означает эта ошибка!
Может ли кто - нибудь помочь решить мою проблему.

Я удалил его
<!DOCTYPE SpringOpen SYSTEM "Seniors_Open.dtd"[]>
из моего xml - файла, и теперь он работает, почему?

1 Ответов

Рейтинг:
8