命令:
xmllint myfile.xml --xpath'MapField2Data [@ country =「FR」]/* [@ active!=「false 「與否(@active)]」
按預期工作我的XML結構xmllint xsd:選擇器xpath行爲不同於--xpath或--shell
但試圖在XSD使用它,它無法編譯:
xmllint - loaddtd --noout --noent --xin CLUDE --schema XSD/pnsConf.xsd pnsConf.xml
XSD/pnsConf.xsd:75:元件選擇器:架構分析器錯誤:元素 '{} http://www.w3.org/2001/XMLSchema選擇',屬性 '的xpath':該XPath表達式「MapField2Data [@ country =「FR」]/* [@ active!=「false」or not(@active)]'無法編譯。
我的XSD有一個適當的
<xsd:selector xpath='MapField2Data[@country="FR"]/*[@active!="false" or not(@active) ]'/>
哪裏像 'MapField2Data/*' 一個簡單的XPath的工作原理在這兩種情況下的罰款。
這看起來像是xmllint或libxml2中的缺陷或缺失功能。
我應該在gmome bugzilla中爲xmllint提交一個bug嗎?
也許有另一種解決方案我的問題在同一時間嗎?
我要「主動」標籤是唯一的,忽略結構的非有源標籤像這樣的:
<MapField2Data country='FR' >
<raw id='NoUnReadMails' active='true'>
<depend ref='_EndMailNotif'/>
<depend ref='_EndMailSub' />
</raw>
<raw id='NoUnReadMails' active='false'>
<depend ref='_EndMailNotif'/>
<depend ref='_EndMailSub' />
</raw>
<raw id='NoEMails' >
<depend ref='_EndMailNotif'/>
<depend ref='_EndMailSub' />
</raw>
...
問候, 靈光。