求一 XPath 中如何使用正則表達式
我的XML如下:
<root>
<dataTable uniqueID="1">
  <a1>123</a1>
</dataTable>
<dataTable uniqueID="2">
  <a1>abc</a1>
</dataTable>
<dataTable uniqueID="2">
  <a1>aac</a1>
</dataTable>
</root>
如果要查找abc開頭的節點我可以用://dataTable[starts-with(a1,'abc')]
但如果我要查找子元素a1中包括'a.*c'的dataTable節點則如何使用正則表達式
(.*表示0個或多個任意字符)

解决方案 »

  1.   

    XPath不支持正则表达式啊
    如果要表示'a.*c',可以这样写:
    //dataTable[starts-with(a1,'a') and ends-with(a1,'c')]
      

  2.   

    这个需要给xpath添加自定义的正则匹配函数
      

  3.   

    貌似可以这样写
    //dataTable[matchs(a1,'^a.*c$')]
      

  4.   

    謝謝各位:
    starwalker: 我試過//dataTable[matchs(a1,'^a.*c$')]出錯,
    haiyong_sea: 那如何自定義函數?