[英]Updating XML Tag Values using VB.NET
我需要使用VB.NET代碼在XML下面進行更新。 標簽已經添加,我只需要更新它們的值即可。
<?xml version="1.0" encoding="UTF-8"?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<LANGUAGE>ENG</LANGUAGE>
<STATEMENT/>
<STATEMENT2/>
<STATEMENT3/>
<SIZE/>
<LANGUAGE>FRA</LANGUAGE>
<STATEMENT/>
<STATEMENT2/>
<STATEMENT3/>
<SIZE/>
<LANGUAGE>SPA</LANGUAGE>
<STATEMENT/>
<STATEMENT2/>
<STATEMENT3/>
<SIZE/>
<ATTRIBUTE>A</ATTRIBUTE>
<CONTAINMENT/>
<ATTRIBUTE>B</ATTRIBUTE>
<CONTAINMENT/>
</test>
此XML中沒有父標記。
對於ENG,我需要更新Statement,Statement2和Statement3。
SPA和FRA的情況相同。 但是進入這些數據庫的數據將有所不同。 這意味着SPA和FRA的聲明將攜帶不同的數據。
我擁有所有相關數據,這些數據在VB.NET代碼的DataTable中獲取,但是我無法區分SPA的STATEMENT標簽和FRA。
有什么方法可以使用不同的數據更新與SPA相關的STATEMENT標簽,以及使用不同的數據更新與FRA相關的STATEMENT標簽?
我已經嘗試過GetElementsByTagName方法,但是它使用相同的數據更新所有標簽,並保留最后一個條目。
如果您有任何解決方案,請告訴我。
試試下面的代碼
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim XDocument1 As XDocument =
<?xml version="1.0" encoding="UTF-8"?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<LANGUAGE>ENG</LANGUAGE>
<STATEMENT/>
<STATEMENT2/>
<STATEMENT3/>
<SIZE/>
<LANGUAGE>FRA</LANGUAGE>
<STATEMENT/>
<STATEMENT2/>
<STATEMENT3/>
<SIZE/>
<LANGUAGE>SPA</LANGUAGE>
<STATEMENT/>
<STATEMENT2/>
<STATEMENT3/>
<SIZE/>
<ATTRIBUTE>A</ATTRIBUTE>
<CONTAINMENT/>
<ATTRIBUTE>B</ATTRIBUTE>
<CONTAINMENT/>
</test>
Dim i As Integer
For i = 0 To XDocument1.Descendants("LANGUAGE").Count - 1
Dim XLanguage1 As XElement = XDocument1.Descendants("LANGUAGE").ElementAt(i)
Dim XStatement1 As XElement = XDocument1.Descendants("STATEMENT").ElementAt(i)
Dim XStatement2 As XElement = XDocument1.Descendants("STATEMENT2").ElementAt(i)
Dim XStatement3 As XElement = XDocument1.Descendants("STATEMENT3").ElementAt(i)
Select Case XLanguage1.Value
Case "ENG"
XStatement1.Value = "Statement1 for English"
XStatement2.Value = "Statement2 for English"
XStatement3.Value = "Statement3 for English"
Case "FRA"
XStatement1.Value = "Statement1 for French"
XStatement2.Value = "Statement2 for French"
XStatement3.Value = "Statement3 for French"
Case "SPA"
XStatement1.Value = "Statement1 for Spanish"
XStatement2.Value = "Statement2 for Spanish"
XStatement3.Value = "Statement3 for Spanish"
End Select
Next
MsgBox(XDocument1.ToString)
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.