发布网友 发布时间:2022-04-23 14:12
共2个回答
懂视网 时间:2022-04-30 00:28
xml.dom.minidom as minidom import MySQLdb dom = minidom.parse("1.xml") root = dom.getElementsByTagName("GANGLIA_XML") conn=MySQLdb.connect(host=‘localhost‘,user=‘root‘,passwd=‘123‘,port=3306) cur=conn.cursor() conn.select_db(‘ganglia‘) for node in root: gangliaxml = node.getElementsByTagName("CLUSTER") for cluster in gangliaxml: host = cluster.getElementsByTagName("HOST") for metric in host: #print(metric.getAttribute("NAME")) for metrics in metric.getElementsByTagName("METRIC"): value=[metrics.attributes["NAME"].value, metrics.attributes["VAL"].value, metrics.attributes["TYPE"].value, metrics.attributes["UNITS"].value, metrics.attributes["TN"].value, metrics.attributes["TMAX"].value, metrics.attributes["DMAX"].value, metrics.attributes["SLOPE"].value,] cur.execute(‘insert into class values(%s,%s,%s,%s,%s,%s,%s,%s)‘,value) conn.commit() cur.close() conn.close()xml文档是:
<GANGLIA_XML VERSION="3.6.1" SOURCE="gmond"> <CLUSTER NAME="sg620g" LOCALTIME="1430118086" OWNER="unspecified" LATLONG="unspecified" URL="unspecified"> <HOST NAME="172.19.0.181" IP="172.19.0.181" TAGS="" REPORTED="1430111045" TN="7040" TMAX="20" DMAX="0" LOCATION="unspecified" GMOND_STARTED="1430111145"> <METRIC NAME="load_one" VAL="0.00" TYPE="float" UNITS=" " TN="7043" TMAX="70" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="load"/> <EXTRA_ELEMENT NAME="DESC" VAL="One minute load average"/> <EXTRA_ELEMENT NAME="TITLE" VAL="One Minute Load Average"/> </EXTRA_DATA> </METRIC> <METRIC NAME="os_release" VAL="2.6.32-504.12.2.el6.x86_64" TYPE="string" UNITS="" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="system"/> <EXTRA_ELEMENT NAME="DESC" VAL="Operating system release date"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Operating System Release"/> </EXTRA_DATA> </METRIC> <METRIC NAME="mem_total" VAL="16314120" TYPE="float" UNITS="KB" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total amount of memory displayed in KBs"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Memory Total"/> </EXTRA_DATA> </METRIC> <METRIC NAME="proc_run" VAL="0" TYPE="uint32" UNITS=" " TN="7043" TMAX="950" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="process"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total number of running processes"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Total Running Processes"/> </EXTRA_DATA> </METRIC> <METRIC NAME="load_five" VAL="0.00" TYPE="float" UNITS=" " TN="7043" TMAX="325" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="load"/> <EXTRA_ELEMENT NAME="DESC" VAL="Five minute load average"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Five Minute Load Average"/> </EXTRA_DATA> </METRIC> <METRIC NAME="gexec" VAL="OFF" TYPE="string" UNITS="" TN="7043" TMAX="300" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="core"/> <EXTRA_ELEMENT NAME="DESC" VAL="gexec available"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Gexec Status"/> </EXTRA_DATA> </METRIC> <METRIC NAME="disk_free" VAL="386.370" TYPE="double" UNITS="GB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="disk"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total free disk space"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Disk Space Available"/> </EXTRA_DATA> </METRIC> <METRIC NAME="mem_cached" VAL="1929396" TYPE="float" UNITS="KB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Amount of cached memory"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Cached Memory"/> </EXTRA_DATA> </METRIC> <METRIC NAME="pkts_in" VAL="0.00" TYPE="float" UNITS="packets/sec" TN="7043" TMAX="300" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="network"/> <EXTRA_ELEMENT NAME="DESC" VAL="Packets in per second"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Packets Received"/> </EXTRA_DATA> </METRIC> <METRIC NAME="bytes_in" VAL="0.20" TYPE="float" UNITS="bytes/sec" TN="7043" TMAX="300" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="network"/> <EXTRA_ELEMENT NAME="DESC" VAL="Number of bytes in per second"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Bytes Received"/> </EXTRA_DATA> </METRIC> <METRIC NAME="swap_total" VAL="4095996" TYPE="float" UNITS="KB" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total amount of swap space displayed in KBs"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Swap Space Total"/> </EXTRA_DATA> </METRIC> <METRIC NAME="bytes_out" VAL="0.72" TYPE="float" UNITS="bytes/sec" TN="7043" TMAX="300" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="network"/> <EXTRA_ELEMENT NAME="DESC" VAL="Number of bytes out per second"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Bytes Sent"/> </EXTRA_DATA> </METRIC> <METRIC NAME="mem_free" VAL="13793820" TYPE="float" UNITS="KB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Amount of available memory"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Free Memory"/> </EXTRA_DATA> </METRIC> <METRIC NAME="load_fifteen" VAL="0.00" TYPE="float" UNITS=" " TN="7043" TMAX="950" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="load"/> <EXTRA_ELEMENT NAME="DESC" VAL="Fifteen minute load average"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Fifteen Minute Load Average"/> </EXTRA_DATA> </METRIC> <METRIC NAME="os_name" VAL="Linux" TYPE="string" UNITS="" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="system"/> <EXTRA_ELEMENT NAME="DESC" VAL="Operating system name"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Operating System"/> </EXTRA_DATA> </METRIC> <METRIC NAME="boottime" VAL="1429665572" TYPE="uint32" UNITS="s" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="system"/> <EXTRA_ELEMENT NAME="DESC" VAL="The last time that the system was started"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Last Boot Time"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_idle" VAL="100.0" TYPE="float" UNITS="%" TN="7043" TMAX="90" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU Idle"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_user" VAL="0.0" TYPE="float" UNITS="%" TN="7043" TMAX="90" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percentage of CPU utilization that occurred while executing at the user level"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU User"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_nice" VAL="0.0" TYPE="float" UNITS="%" TN="7043" TMAX="90" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percentage of CPU utilization that occurred while executing at the user level with nice priority"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU Nice"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_aidle" VAL="0.0" TYPE="float" UNITS="%" TN="7043" TMAX="3800" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percent of time since boot idle CPU"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU aidle"/> </EXTRA_DATA> </METRIC> <METRIC NAME="mem_buffers" VAL="135208" TYPE="float" UNITS="KB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Amount of buffered memory"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Memory Buffers"/> </EXTRA_DATA> </METRIC> <METRIC NAME="part_max_used" VAL="36.9" TYPE="float" UNITS="%" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="disk"/> <EXTRA_ELEMENT NAME="DESC" VAL="Maximum percent used for all partitions"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Maximum Disk Space Used"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_system" VAL="0.0" TYPE="float" UNITS="%" TN="7043" TMAX="90" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percentage of CPU utilization that occurred while executing at the system level"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU System"/> </EXTRA_DATA> </METRIC> <METRIC NAME="disk_total" VAL="412.914" TYPE="double" UNITS="GB" TN="7043" TMAX="1200" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="disk"/> <EXTRA_ELEMENT NAME="DESC" VAL="Total available disk space"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Total Disk Space"/> </EXTRA_DATA> </METRIC> <METRIC NAME="mem_shared" VAL="0" TYPE="float" UNITS="KB" TN="7043" TMAX="180" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="memory"/> <EXTRA_ELEMENT NAME="DESC" VAL="Amount of shared memory"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Shared Memory"/> </EXTRA_DATA> </METRIC> <METRIC NAME="machine_type" VAL="x86_64" TYPE="string" UNITS="" TN="7043" TMAX="1200" DMAX="0" SLOPE="zero"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="system"/> <EXTRA_ELEMENT NAME="DESC" VAL="System architecture"/> <EXTRA_ELEMENT NAME="TITLE" VAL="Machine Type"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_wio" VAL="0.0" TYPE="float" UNITS="%" TN="7043" TMAX="90" DMAX="0" SLOPE="both"> <EXTRA_DATA> <EXTRA_ELEMENT NAME="GROUP" VAL="cpu"/> <EXTRA_ELEMENT NAME="DESC" VAL="Percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request"/> <EXTRA_ELEMENT NAME="TITLE" VAL="CPU wio"/> </EXTRA_DATA> </METRIC> <METRIC NAME="cpu_num" VAL="16" TYPE="uint16" UNITS="CPUs" TN="7043" TMAX="1200" DMAX="0" SLOPE var cpro_id = "u6292429";热心网友 时间:2022-04-29 21:36
举例说明如下
xml文件名为: text.xml
xml数据文件的结构如下:
<node1>
<node2 name="abc">123</node2>
</node1>
sql命令如下:
SET @xml = LOAD_FILE('text.xml'); -- 要指定完整的文件位置
SELECT ExtractValue(@xml, '/node1/node2/@name') as name,ExtractValue(@xml, '/node1/node2') as data;
返回数据结果就是:
name | data
abc | 123