日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

load xml error什么意思_XML文件解析实践(DOM解析)

發(fā)布時間:2025/3/19 asp.net 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 load xml error什么意思_XML文件解析实践(DOM解析) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

昨天完成了基于DOM的XML文件解析類,今天趕緊實踐了一下,不得不說,實踐中的坑還是很多的。

本來這個項目就是為了規(guī)范各個服務(wù)在使用MySQL數(shù)據(jù)庫時候的配置項,由于之前我接觸的都是Java服務(wù),對于這些服務(wù)也算比較了解,大家的配置項基本還算是保持一致,今天解析所有服務(wù)的配置項,大開眼界。

  • 不看不知道,世界真奇妙。

首先是配置項的層級結(jié)構(gòu),一般來講,一個root作為根節(jié)點,然后子節(jié)點都是各個服務(wù)節(jié)點,在服務(wù)節(jié)點下面是服務(wù)版本節(jié)點,然后是change和unchange兩個節(jié)點,然后是具體的內(nèi)容。奈何人算不如天算,算來算去不如狗帶。

先看圖:

zk配置截圖

居然所有節(jié)點都是zknode,這是其一,在每個版本下面還有不同的配置模塊,然后子節(jié)點配置具體信息。

zk配置截圖

居然還有沒有value的配置項,我真實要狗帶了。

然后就是MySQL配置,簡直刷新世界觀。

下面是我從XML總的配置文件截取的內(nèi)容:


????????????????<zknode?name="datadb.username"?value="****"/>
????????????????<zknode?name="db.host.r"?value="****"/>
????????????????<zknode?name="dbdata.host.w"?value="*"/>
????????????????<zknode?name="datadb.port"?value="*"/>
????????????????<zknode?name="datadb.databasev3"?value="*****"/>
????????????????<zknode?name="datadb.host.w"?value="*****"/>

???????????????<zknode?name="v3.db"?value="******"/>
????????????????<zknode?name="v3.user"?value="******"/>
????????????????<zknode?name="work.db"?value="******"/>
????????????????<zknode?name="work.host"?value="******"/>
????????????????<zknode?name="v3.passwd"?value="******"/>
????????????????<zknode?name="DB_CONNECTION"?value="******"/>
????????????????<zknode?name="DB_HOST"?value="******"/>
????????????????<zknode?name="DB_DATABASE"?value="******"/>
????????????????<zknode?name="DB_PASSWORD"?value="******"/>
????????????????<zknode?name="mysql.DB_DATABASE"?value="***"/>
????????????????<zknode?name="redis.REDIS_PORT"?value="***"/>
????????????????<zknode?name="ds.druid.username"?value="****"/>
????????????????<zknode?name="ds.druid.url"??value="****"/>

此處省略100種數(shù)據(jù)庫配置

痛定思痛,該吐槽已經(jīng)吐槽完了,活兒還是得干完的。經(jīng)過不斷嘗試,終于完成了一種解決的腳本。

我覺得需要一個寬屏顯示器了。


package?com.fun.ztest.groovy

import?com.fun.frame.httpclient.FanLibrary
import?com.fun.utils.XMLUtil
import?org.slf4j.Logger
import?org.slf4j.LoggerFactory

class?Td?extends?FanLibrary?{

????private?static?Logger?logger?=?LoggerFactory.getLogger(Td.class)

????public?static?void?main(String[]?args)?{


????????def?xml?=?XMLUtil.parseXml("/Users/fv/Downloads/d.xml",?"root")
????????xml.get(0).getChildren().each?{
????????????logger.error("服務(wù)名:{}",?it.getAttrs().get(0).getValue())
????????????def?children?=?it.getChildren()
????????????children.each?{
????????????????def?attr1?=?it.getAttrs()
????????????????def?name?=?attr1.get(0).getValue()
????????????????if?(name?==~?/[vV]\d.\d+/)?{
????????????????????logger.error("zk版本:${name}")
????????????????????def?children1?=?it.getChildren()
????????????????????children1.each?{
????????????????????????def?children2?=?it.getChildren()
????????????????????????children2.each?{
????????????????????????????def?attrs?=?it.getAttrs()
????????????????????????????if?(attrs.size()?>?1)?{
????????????????????????????????def?var?=?attrs.get(0).getValue()
????????????????????????????????def?value?=?attrs.get(1).getValue()
????????????????????????????????if?(!(value?==~?/\d+/))?{
????????????????????????????????????if?(var.contains("druid")?||?var.contains("db")?||?var.contains("user")?||?value.contains("mysql")?||?value.contains("neworiental")?||?value.contains("neworiental"))?{
????????????????????????????????????????if?(!value.contains("{")?&&?!value.contains(".txt")?&&?!var.contains("service")?&&?!var.contains("maill")?&&?!var.contains("host")?&&?!var.contains("driver")?&&?!var.contains("filters")?&&?!var.contains("center")?&&?!var.contains("rabbit")?&&?!var.contains("order")?&&?!value.contains("http"))
????????????????????????????????????????????logger.info("key:?{},value:?{}",?var,?value)
????????????????????????????????????}
????????????????????????????????}
????????????????????????????}
????????????????????????}
????????????????????}
????????????????}
????????????}
????????}

????????testOver()
????}


}


公眾號FunTester首發(fā),原創(chuàng)分享愛好者,騰訊云和掘金社區(qū)首頁推薦,知乎七級原創(chuàng)作者,歡迎關(guān)注、交流,禁止第三方擅自轉(zhuǎn)載。

FunTester熱文精選

  • 寫給所有人的編程思維
  • 2020年Tester自我提升
  • 未來的神器fiddler Everywhere
  • 測試開發(fā)工程師工作技巧
  • Selenium4 IDE,它終于來了
  • 自動化測試靈魂三問:是什么、為什么和做什么
  • 為什么測試覆蓋率如此重要
  • 吐個槽,非測誤入。
  • 自動化測試框架
  • 敏捷中的端到端測試

總結(jié)

以上是生活随笔為你收集整理的load xml error什么意思_XML文件解析实践(DOM解析)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。