将XML-if-Statement转换为Database表 [英] Convert XML-if-Statement into Database table
问题描述
嗨!
考虑以下xml文件的输出:
Hi!
Consider the following output of a xml-file:
<PACKET name="abc">
<VARREF name="X_PACKET" size="8"/>
<VARREF name="Y_PACKET" size="16"/>
<SPARE size="7"/>
<VARREF name="Z_PACKET" size="1"/>
<SPARE size="8"/>
<IF var="Z_PACKET" val="0">
<VARREF name="PACKET ABC" size="8"/>
<VARREF name="PACKET CBA" size="8"/>
</IF>
<IF var="Z_PACKET" val="1">
<VARREF name="PACKET123" size="8"/>
<VARREF name="PACKET321" size="8"/>
</IF>
<SPARE size="7"/>
<VARREF name="ABCPACKET" size="1"/>
<VARREF name="BCDPACKET" size="16"/>
</PACKET>
现在我想把这个xml-strucuture转换成数据库表(MySQL)。
我有以下表格:
表:数据包(变量:数据包名称)
表:信号(变量:名称(包名),大小,val)
关系:n:m
这意味着:一个数据包可以包含n个信号,一个信号可以包含更多数据包。
现在我不知道如何将if语句转换为表格,因为表包的内容取决于变量val。这意味着,根据Signal表的属性val,数据库表Packet的内容是不同的。
对不起因为我的英语不好
关于
Now i want to convert this xml-strucuture into Database-tables (MySQL).
I have the following tables:
Table: Packet (Variables: Packetname)
Table: Signal (Variables: name(Packetname), size, val)
relationship: n:m
That means: one packet could contain n-signals and a signal can belong to more packets.
Now I don´t know how to convert an if-statement into a table, because the content of the table packet depends on the variable "val". That means, depending on the attribute "val" of the Signal table the content of the database-table Packet is different.
Sorry for my bad english
regards
推荐答案
解决方案:我必须添加一个额外的m:n - 关于表信号的关系。在新创建的表Signal_has_Signal中,我可以将许多SignalID添加到一个特殊的SignalID中。通过选择语句,我能够查看正确的数据包结构(表包)。
The solution: I have to add an additional m:n-Relationship to the table Signal. In the new created table Signal_has_Signal i´m able to add many SignalID´s to one special SignalID. Through Select-Statements I´m able to view the correct Packet-Structure(Table Packet).
这篇关于将XML-if-Statement转换为Database表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!