最近做 Digital Data Exchange 介接資料
XML 平常是會用,有知道一些 Library 可以解析裡面資料
但進階的 xpath 平常沒有什麼用到
就找找看有什麼實用工具
讓未來 debug 有更快的方法
首先 Digital Data Exchange 是一個規則(XML)
因為可能會用到 xpath 在想有什麼好工具可以用?
XSD
首先,先講解什麼是 XSD(XML Schema D)
我以前這篇文章有提過驗證快速檢查JSON方法 | 程式狂想筆記
使用 XSD 為 XML 客製 Intellisense 輸入選單 - Yowko’s Notes
XSDVi
Dgis XSD Diagram
但我還沒找到好用的工具
bash 指令
xmllint
1 | # 安裝 |
不過不知到為什麼公司有裝的工具不能用
可能版本太舊?
2019-09-10
有找到方法
xmllint unknown option ‘–xpath’ - Stack Overflow
結果查東西還是要用人工去掃…1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31xmllint --shell xxxx.xml << EOF
'//xxx'
EOF
xmllint --shell xxxx.xml <<<'xpath //xxx'
for f in `find . -type f -name '*.xml'`
do
xmllint --shell $f <<<'xpath //oooo/'
done
for f in `find . -type f -name '*.xml'`
do
echo $f
xmllint --shell $f <<<'xpath //oooo[.!="aa" and .!="bbb" and .!="ccc"]/text()'
done
for f in *.xml
do
echo $f
done
for f in `find . -type f -name '*.xml'`
do
echo $f
xmllint --shell $f <<<'xpath //xxx[.="123456"]/text()'
done
xpath
1 | # 安裝 |
xml2
1 | # 安裝 |
詳細可看: Shell解析处理XML方法汇总 備份圖
其他參考
- 如何使用XMLLINT和BASH解析XML文件中的命名空间 - 智库101 - 一个基于CC版权的问答分享平台
- /bin/bash: xmllint: 未找到命令 - hailushijie的专栏 - CSDN博客
- Shell解析处理XML方法汇总
- XPath详解,总结 - 钱途无梁 - 博客园
- xpath注入详解 - 渗透测试中心 - 博客园
實用 vscode 套件
XML - Visual Studio Marketplace
記得要安裝 Java
要設定 home 路徑
XML Tools - Visual Studio Marketplace
可查 xpath ,算是滿方便可以查詢套件!!
相關 xpath 一些教學網站
因為還沒有很熟悉,之後開一篇做 xpath 筆記
XSD 可能也會記錄怎麼看,感覺認真看 XML 也是個大坑!!!
2019-10-02
xpath 可以寫這麼複雜
但要記得[]
比對資料要帶"
1
DataReference[text()=//ShowArtist[@SequenceNumber="1"]/ArtistDataReference]
XPath online real-time tester, evaluator and generator for XML & HTML
爬虫进阶开发——xpath选择器常见用法 · phpspider开发文档
在 xml.value 中, XPath中使用 text() 函数的重要性 | 陈鹏个人博客
relative path ./
/
//xxxx[xxxx[xxxx=sss]]=//xxxx[xxxx]/
domxpath
1 |
|
這邊注意 SimpleXML 跟 domxpath 完全沒什麼關係
我目前看法這些應該是兩個不同 Library
所以用法也不太一樣
domxpath 回傳東西很像 Javascript 的 Node
記得 domxpath 抓
看起來很不錯套件servo-php/fluidxml: FluidXML, the PHP library for manipulating XML with a concise and fluent API.