【发布时间】:2019-07-03 07:22:10
【问题描述】:
我正在尝试了解以下 XML 的结构,以便将其解析为 Excel 列。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE raml SYSTEM 'raml20.dtd'>
<raml version="2.0" xmlns="raml20.xsd">
<cmData type="actual">
<header>
<log dateTime="2019-02-08T15:05:41.000Z" action="created" appInfo="ActualExporter">InternalValues are used</log>
</header>
<managedObject class="AMLEPR" version="FL18_1711_06_1711_05" distName="PLMN-PLMN/MRBTS-502393/LNBTS-502393/LNCEL-10/AMLEPR-0" id="9075019">
<defaults name="BLANK"/>
<p name="cacHeadroom">0</p>
<p name="deltaCac">2</p>
<p name="maxCacThreshold">100</p>
<p name="targetCarrierFreq">1400</p>
</managedObject>
<managedObject class="AMLEPR" version="FL18_1711_06_1711_05" distName="PLMN-PLMN/MRBTS-502393/LNBTS-502393/LNCEL-110/AMLEPR-0" id="9075022">
<defaults name="BLANK"/>
<p name="cacHeadroom">0</p>
<p name="deltaCac">2</p>
<p name="maxCacThreshold">100</p>
<p name="targetCarrierFreq">2100</p>
</managedObject>
<managedObject class="AMLEPR" version="FL18_1711_06_1711_05" distName="PLMN-PLMN/MRBTS-502393/LNBTS-502393/LNCEL-114/AMLEPR-0" id="10755757">
<defaults name="BLANK"/>
<p name="cacHeadroom">0</p>
<p name="deltaCac">2</p>
<p name="maxCacThreshold">100</p>
<p name="targetCarrierFreq">2300</p>
</managedObject>
<managedObject class="AMLEPR" version="FL18_1711_06_1711_05" distName="PLMN-PLMN/MRBTS-502393/LNBTS-502393/LNCEL-120/AMLEPR-0" id="9075025">
<defaults name="BLANK"/>
<p name="cacHeadroom">0</p>
<p name="deltaCac">2</p>
<p name="maxCacThreshold">100</p>
<p name="targetCarrierFreq">2500</p>
</managedObject>
</cmData>
</raml>
我想以这样的方式解析它
我想了解如何在这个 XML 中定义子元素。我看到有多个元素具有相同的名称"p",所以每当我尝试在 MS Access 甚至 VB.net 数据集中导入它时,我都会得到一个带有"p" 的列名。
我用来更新 Access 的代码如下:
Dim cs As String
cs = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Form1.db_txtbox.Text & "; Persist Security Info=False;"
Dim con As New OleDb.OleDbConnection(cs)
Using con
Dim DelQuery As String
Dim SqlQuery As String
con.Open()
DelQuery = "Delete * from LTE_AMLEPR"
SqlQuery = "INSERT INTO LTE_AMLEPR (distName, MRBTS, LNBTS, LNCEL, AMLEPR, version, ID, cacHeadroom, deltaCac, maxCacThreshold, targetCarrierFreq) VALUES (@distName , @MRBTS, @LNBTS, @LNCEL, @AMLEPR, @version, @id, @cacHeadroom, @deltaCac, @maxCacThreshold, @targetCarrierFreq)"
Dim da As New OleDbDataAdapter()
Dim olecmd As OleDbCommand = New OleDbCommand(DelQuery, con)
olecmd.ExecuteNonQuery()
olecmd.Dispose()
da.InsertCommand = New OleDbCommand(SqlQuery, con)
da.InsertCommand.Parameters.Add("distName", OleDbType.VarChar, 100, "distName")
da.InsertCommand.Parameters.Add("MRBTS", OleDbType.VarChar, 100, "MRBTS")
da.InsertCommand.Parameters.Add("LNBTS", OleDbType.VarChar, 100, "LNBTS")
da.InsertCommand.Parameters.Add("LNCEL", OleDbType.VarChar, 100, "LNCEL")
da.InsertCommand.Parameters.Add("AMLEPR", OleDbType.VarChar, 100, "AMLEPR")
da.InsertCommand.Parameters.Add("version", OleDbType.VarChar, 100, "version")
da.InsertCommand.Parameters.Add("ID", OleDbType.VarChar, 100, "id")
da.InsertCommand.Parameters.Add("cacHeadroom", OleDbType.VarChar, 20, "cacHeadroom")
da.InsertCommand.Parameters.Add("deltaCac", OleDbType.VarChar, 20, "deltaCac")
da.InsertCommand.Parameters.Add("maxCacThreshold", OleDbType.VarChar, 20, "maxCacThreshold")
da.InsertCommand.Parameters.Add("maxCacThreshold", OleDbType.VarChar, 20, "targetCarrierFreq")
da.Update(Dt)
End Using
有人可以建议和解释这种 XML 结构以及我如何为这种类型的 XML 创建 XSD。
谢谢
【问题讨论】:
标签: excel xml vba vb.net ms-access