繁体   English   中英

Append 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM