将字符串列表附加到 VB.NET 中的 XML 文件

Append list of strings to XML file in VB.NET

我需要一些帮助来简化工作,如果可能,请不要手动完成。

我有一个字符串列表:

<title>TITLE 1</title>
<title>TITLE 2</title>
<title>TITLE 3</title>
<title>TITLE 4</title>
<title>TITLE 5</title>
ETC...

有1200多个字符串,只是为了让你知道。 我还有一个包含相同数量元素的 XML 文件,每个元素都采用以下格式:

<game id="N">
    <url>URL</url>
    <img>IMG_URL</img>
    <date>DATE</date>
    <genre>GENRE</genre>
    <publisher>PUBLISHER</publisher>
    <developer>DEVELOPER</developer>
    <platforms>PLATFORMS</platforms>
    <vote>VOTE</vote>
    <review>REVIEW_URL</review>
    <info><![CDATA[INFORMATIONS]]></info>
</game>

我需要做的是在每个 </img><date> 之前追加每个 <title> 字符串。可以使用 VB.NET 来完成(我不会用 C#/C++ 编写代码),如果可以,有人可以帮我编写代码吗?或者也许有更简单的正则表达式等方法...谢谢!

使用 XElement 和 LINQ。

    Dim URI As String = "your path here"
    Dim fileXE As XElement
    'fileXE = XElement.Load(URI) ' - load XML,  uncomment in production

    'for testing = remove in production
    Dim titls As New List(Of String)
    titls.AddRange({"<title>TITLE 1</title>",
                    "<title>TITLE 2</title>",
                    "<title>TITLE 3</title>",
                    "<title>TITLE 4</title>",
                    "<title>TITLE 5</title>"})

    'for testing = remove in production
    fileXE = <games>
                 <game id="A">
                     <url>URL</url>
                     <img>IMG_URL</img>
                     <date>DATE</date>
                     <genre>GENRE</genre>
                     <publisher>PUBLISHER</publisher>
                     <developer>DEVELOPER</developer>
                     <platforms>PLATFORMS</platforms>
                     <vote>VOTE</vote>
                     <review>REVIEW_URL</review>
                     <info><![CDATA[INFORMATIONS]]></info>
                 </game>
                 <game id="B">
                     <url>URL</url>
                     <img>IMG_URL</img>
                     <date>DATE</date>
                     <genre>GENRE</genre>
                     <publisher>PUBLISHER</publisher>
                     <developer>DEVELOPER</developer>
                     <platforms>PLATFORMS</platforms>
                     <vote>VOTE</vote>
                     <review>REVIEW_URL</review>
                     <info><![CDATA[INFORMATIONS]]></info>
                 </game>
                 <game id="C">
                     <url>URL</url>
                     <img>IMG_URL</img>
                     <date>DATE</date>
                     <genre>GENRE</genre>
                     <publisher>PUBLISHER</publisher>
                     <developer>DEVELOPER</developer>
                     <platforms>PLATFORMS</platforms>
                     <vote>VOTE</vote>
                     <review>REVIEW_URL</review>
                     <info><![CDATA[INFORMATIONS]]></info>
                 </game>
             </games>
    'end for testing

    'get all img nodes
    Dim imgs As IEnumerable(Of XElement) = fileXE...<img>

    For Each el As XElement In imgs 'add one string per img
        Dim xe As XElement
        Try
            xe = XElement.Parse(titls(0)) 'get a title
            titls.RemoveAt(0) 'remove it
            el.AddAfterSelf(xe) 'add it
        Catch ex As Exception
            Stop
        End Try
    Next
    fileXE.Save(URI) 'save file
    Stop