2010-01-27 45 views
2

假設我有這個XML文檔...什麼是適當的XPath查詢來查找此XML文檔中的值?

<root> 
    <str name="My node's attribute">My string's value</str> 
</root> 

我想基於元素「名」的已知值的「海峽」元素屬性的值,所以我用下面的XPath查詢。 ..

str[@name='My node's attribute'] 

但是,這並不適合我在傳統的ASP和C#的工作,因爲單引號的,至少不是這與XPath語法使用單引號課程衝突。這兩種情況都會引發異常。

如果我有限制,我不能更改XML文檔,這裏有什麼可能的解決方案。

回答

2

使用「中的XPath,而不是: -

C#

string xpath = "str[@name=\"My node's attribute\"]"; 

的VBScript

Dim xpath : xpath = "str[@name=""My node's attribute""]" 
+0

或C#'string xpath = @「str [@name =」「我的節點屬性」「]」;' – Tomalak 2010-01-27 17:36:56

+0

VBScript版本適用於我。非常感謝!雖然C#對我來說沒有任何回報。我會想象C#對你很好嗎安東尼? – 2010-01-27 17:42:47

0

嘗試:

str[@name='My node''s attribute'] 
+1

d加上'字符不是XPath理解的轉義序列。 – AnthonyWJones 2010-01-27 17:22:25

0
str[@name='My node&apos;s attribute'] 
+2

在對XmlDocument執行的原始XPath中,不能理解XML實體。在XSL中,XPath解析之前它會被轉義,導致相同的問題。 – AnthonyWJones 2010-01-27 17:26:18