2017-03-27 95 views
1

我有一個XPath表達式:的XPath選擇的符號化結果

//gym/person/clientMembers/member[@membershipID='60410001']/name/text() 

它選擇的數據值: 查爾斯McKlarkey

從XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
<gym> 
    <person> 
     <clientMembers> 
     <member membershipID ="60410001"> 
       <name> Charles McKlarkey</name> 
       <contactNo> 02147483647 </contactNo> 
       <email> [email protected] </email> 
       <date-of-birth> 1986-02-20</date-of-birth> 
       <sex> Male </sex> 
       <expiryDate> 2017-02-22 </expiryDate> 
       <owns membershipType="Platinum"/> 
     </member> 
    </person> 
</gym> 

並希望來標記結果,以便最終查詢將返回「Charles」「McKlarkey」。

我已經做了一些令人討厭的Tokenize函數,但似乎無法得到一個適用於此的東西。任何人都可以協助?

我正在使用:http://www.xpathtester.com/xpath來測試我的表情。

+0

這是因爲HTTP:// WWW。 xpathtester.com/xpath使用XPath 1.0,它不實現標記化。可悲的是,XPath 1.0沒有拆分/標記化方法。 – eLRuLL

+0

它們支持XPath 1.0和XPath 2.0 - 至少在我看的時候呢?我也習慣了我認爲也是XPath 2.0特定的集合函數。 –

+0

好的,所以它應該最終工作然後 – eLRuLL

回答

0

這是您使用的工具中的一個錯誤。它只能返回單個字符串結果。鑑於當前的XML(假設clientMembers因素是正常閉合),下面的XPath的輸出會有一個空字符串因爲有之前「查爾斯」在XML的空間:

//gym/person/clientMembers/member[@membershipID='60410001']/name/tokenize(., ' ') 

test 1

當你刪除一個空間形成輸入XML,其結果將是只是「查爾斯」

test 2

使用another tool,例如,如預料的一樣的XPath的結果:

Charles 
McKlarkey 

test 3

+0

謝謝! 我不得不使用XPathTester.com,因爲這是我的講師強制執行的,這讓我瘋狂地研究了爲什麼儘管我盡了最大的努力仍然無法正確評估。 –