我正在寫一個C#程序來查詢XML文件(書籍數據庫)。
我想用定義的作者查詢所有記錄:<作者>被定義爲<作者>的列表。
到目前爲止,我使用了以下內容:XPath表達式提取記錄與定義的孩子
itemNodes = xmlDoc.SelectNodes("//record[contains(translate(authors/author, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '" + strSearch.ToLower() + "')]");
正是有了這種記錄OK:
<record>
<_formats>PDF</_formats>
<publisher>Alessio Roberti Editore</publisher>
<authors sort="Dilts, Robert">
<author>Robert Dilts</author>
</authors>
...
但卻忽略這一個:
<record>
<_formats>AZW3, EPUB</_formats>
<publisher>Alessio Roberti Editore</publisher>
<authors sort="Gilligan, Stephen & Dilts, Robert">
<author>Stephen Gilligan</author>
<author>Robert Dilts</author>
</authors>
...
這裏筆者是第二個項目的名單。
如何更改表達式以返回兩個記錄?
由於您使用的是C#,因此可以改爲使用Linq2Xml。它可以很容易地用來避免文本中的單引號問題,ignorecase比較等。 –