2011-09-30 51 views
1

我有像這樣XmlSearch不承認的XPath

<cfxml variable="mydoc"> 
    <?xml version="1.0" encoding="UTF-8"?> 
    <Feed xmlns="http://www.example.com/xs/PRR/SyndicationFeed/4.9" name="Test"> 
     <Product id="test1" removed="false"> 
      <Source>Widget</Source> 
      <ExternalId>Widget01</ExternalId> 
      <Name>iWidget 3G</Name> 
      <NumReviews>11</NumReviews> 
     </product> 
    </Feed> 
</cfxml> 

我想返回NumReviews節點文本的XML文檔。但是:

numReviews = XmlSearch(mydoc, "/Feed/Product/NumReviews");返回一個空數組。

numReviews = XmlSearch(myDoc, "//*[local-name()='NumReviews']");返回節點文本。

據我所知,第一行代碼是正確的,應該返回NumReviews的值。爲什麼它會返回一個空數組?

回答

4

它可能是名稱空間。我認爲當涉及名稱空間時,你的第二個語法是必需的。我知道我必須自己使用它。

+0

我們有一個贏家!謝謝。 – RHPT

0

您在第一個示例中使用了反斜槓。他們應該是前鋒,對吧?

+0

糟糕。這是一個錯誤的問題。編輯。 – RHPT

6

類似numReviews = XmlSearch(mydoc, "/:Feed/:Product/:NumReviews");也應該有名稱空間時工作。

+0

+1大提示。我最近剛剛發現了那個小小的已知寶石。不知道我是如何錯過這一次.. – Leigh