2013-03-29 75 views
0

我想檢索下面的代碼片段中的connectionString值。我嘗試了幾個XPath,但總是得到錯誤或對象未找到。我一直在使用這些網站:如何構建簡單的XPath查詢

http://www.xpathtester.com/test 
http://www.xmlme.com/XpathTool.aspx 

這裏是我試過的XPath:

/connectionStrings/add/@connectionString 
/connectionStrings/add[@connectionString] 

下面的代碼:

<connectionStrings> 
    <add name="mydb" connectionString="Data Source=.;Initial Catalog=mydb;Integrated Security=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

任何人都可以看到我在做什麼錯?

+1

有可能是一個默認的命名空間???這是XPath最常見的FAQ。 –

回答

1

這兩個XPath查詢都是有效的。第一個選擇屬性,第二個選擇具有connectionString屬性的<add>元素。

你會得到什麼錯誤以及在什麼情況下?

這裏的「證據」是,XPath是精細,採用RubyNokogiri,這是建立在libxml2的頂部:

require 'nokogiri' 
doc = Nokogiri.XML '<connectionStrings> 
    <add name="mydb" connectionString="foo" providerName="bar" /> 
</connectionStrings>' 

puts doc.at_xpath('/connectionStrings/add/@connectionString') 
#=> foo 

puts doc.at_xpath('/connectionStrings/add[@connectionString]') 
#=> <add name="mydb" connectionString="foo" providerName="bar"/>