如何在Unicode的XML Unicode字符数据库(UCD / UCDXML)上使用xpath?

时间:2018-01-26 14:00:27

标签: xml shell xpath xmllint

我正在尝试编写一个脚本来为我的Unicode库构建一些表,我需要构建的表之一是Unicode标准中所有数字代码点的列表及其值。

为此,我在shell脚本中使用ucd/repertoire/char/@nv[.!='NaN'],因为我的xpath查询不起作用,所以我不得不建立代码点列表及其值。

我已尝试自定义一堆xpath查询字符串,我在stackoverflow上看到过其他一些问题。

这是我尝试使用的当前查询字符串:xmllint --xpath /*[local-name()='ucd']/*[local-name()='repertoire']/*[local-name()='char']/@nv<ucd xmlns="http://www.unicode.org/ns/2003/ucd/1.0"> <description>Unicode 10.0.0</description> <repertoire> <char cp="0000" age="1.1" na="" JSN="" gc="Cc" ccc="0" dt="none" dm="#" nt="None" nv="NaN" bc="BN" bpt="n" bpb="#" Bidi_M="N" bmg="" suc="#" slc="#" stc="#" uc="#" lc="#" tc="#" scf="#" cf="#" jt="U" jg="No_Joining_Group" ea="N" lb="CM" sc="Zyyy" scx="Zyyy" Dash="N" WSpace="N" Hyphen="N" QMark="N" Radical="N" Ideo="N" UIdeo="N" IDSB="N" IDST="N" hst="NA" DI="N" ODI="N" Alpha="N" OAlpha="N" Upper="N" OUpper="N" Lower="N" OLower="N" Math="N" OMath="N" Hex="N" AHex="N" NChar="N" VS="N" Bidi_C="N" Join_C="N" Gr_Base="N" Gr_Ext="N" OGr_Ext="N" Gr_Link="N" STerm="N" Ext="N" Term="N" Dia="N" Dep="N" IDS="N" OIDS="N" XIDS="N" IDC="N" OIDC="N" XIDC="N" SD="N" LOE="N" Pat_WS="N" Pat_Syn="N" GCB="CN" WB="XX" SB="XX" CE="N" Comp_Ex="N" NFC_QC="Y" NFD_QC="Y" NFKC_QC="Y" NFKD_QC="Y" XO_NFC="N" XO_NFD="N" XO_NFKC="N" XO_NFKD="N" FC_NFKC="#" CI="N" Cased="N" CWCF="N" CWCM="N" CWKCF="N" CWL="N" CWT="N" CWU="N" NFKC_CF="#" InSC="Other" InPC="NA" PCM="N" vo="R" RI="N" blk="ASCII" isc="" na1="NULL"> <name-alias alias="NUL" type="abbreviation"/> <name-alias alias="NULL" type="control"/> </char> </repertoire> </ucd>

这是一个示例代码点,因此您可以看到它的布局。

char

我尝试检查每个nv,看看它的cp属性是否等于有效数字,告诉它忽略&#34; NaN&#34;,如果它的属性不是NaN,我认为它有效,抓取nv值及其//ucd/repertoire/char值并将它们放入C表中,但是我还没有真正掌握更高级别的脚本部分,我已经卡在了xpath部分。

那么,我哪里错了?我尝试过搜索结构化版本的各种不同版本(我的意思是ucd/repertoire/char//char@nv,只有document,以及其他一些我不喜欢的版本#39;甚至还记得。)

0 个答案:

没有答案