我想要在MS SQL Server上使用XQuery使用包含特定文本元素的段落後,獲取表格的文本元素。問題是每當我使用軸「跟隨」,「跟隨兄弟姐妹」或「前兄弟姐妹」,我得到一個錯誤,說這不支持SQL Server中(我使用版本2008)。因此,舉例來說,我可以得到包含其值是「嗒嗒」文本節點第一段節點:當「跟隨」軸不受支持時,在XPath中獲取以下兄弟:
//w:p[descendant::w:t = "blah"]
我可以用得到的表元素的文本:
//w:tbl//w:t/text()
我看不出有什麼辦法可以強制查詢只返回下面的先前捕獲的段落節點,因爲第一個表元素:
//w:tbl[following:://w:p//w:t = "blah"]//w:t/text()
給出了錯誤:「XQuery的[Specification.document.query()]: XQ uery語法'下面'不支持。「
與同爲:
//w:tbl[following-sibling::w:p[descendant::w:t = "blah"]]//w:t/text()
給出 「的XQuery [Specification.document.query()]:XQuery的語法 '以下同胞' 不支持」。
這是不對的,你們都知道!自從1999年AFAICT 1.0以來,XPath支持以下和以下兄弟,所以MS SQL Server在標準符合性方面似乎嚴重不足,但無論哪種方式,有沒有人看到我可以在沒有這些軸的情況下做到這一點?提前致謝!
你能後的XML? – Jagd 2010-07-13 16:10:54
您的表達:'// w:tbl [following :: // w:p // w:t =「blah」] // w:t/text()'在語法上不是合法的XPAth表達式。這與「跟隨」無關。 – 2010-07-14 01:12:43
關於: ''// w:tbl [before-sibling :: w:p [descendant :: w:t =「blah」]] // w:/ text()' 我知道這是有效的因爲它在.NET Framework中起作用。但不是在SQL Server中。在我看來,SQL服務器是不符合XPath的。 – TimeHorse 2010-07-15 14:31:03