2

XML ドキュメント内の属性の重複値を削除するにはどうすればよいですか?

これは、次のように 1 つの重複した「名前」値を持つ XML の例です3 Ways - Fake Love

<?xml version="1.0" encoding="Windows-1252"?>
<!--MasterMusik Song Database-->
<Songs>
  <Song><Name>3 Ways - Fake Love</Name><Year>2000-2006</Year><Genre>Dance</Genre><Bitrate>128</Bitrate><Length>03:50</Length><Size>3,51</Size></Song>
  <Song><Name>3 Ways - Fake Love</Name><Year>2000-2006</Year><Genre>Dance</Genre><Bitrate>128</Bitrate><Length>03:50</Length><Size>3,51</Size></Song>
  <Song><Name>A7 - Piece Of Heaven</Name><Year>2000-2006</Year><Genre>Dance</Genre><Bitrate>128</Bitrate><Length>03:27</Length><Size>3,17</Size></Song>
 </Songs>

この関数を使用して、XML 要素を「名前」の値で並べ替え、Distinctメソッドを使用して重複した名前を削除しようとしましたが、何もしません。

Private Function Sort_XML_By_Element(ByVal XML As XDocument, _
                                 ByVal Root_Element As String, _
                                 ByVal Element_to_sort As String) As XDocument

    Dim xdoc As XDocument

    xdoc = XML
    xdoc.Root.ReplaceNodes(XML.Root.Elements(Root_Element) _
                              .OrderBy(Function(sort) sort.Element(Element_to_sort).Value).Distinct)

    Return xdoc

End Function
4

1 に答える 1