2011-09-28 67 views
0

鑑於路徑/XML/Staff/Content/ContentXML/StaffProfile/Role是正確的,並且我有5 /XML/Staff只有一名工作人員以「合作伙伴」這個XPath有什麼問題?

爲什麼這場比賽的所有5名工作人員的角色?

<xsl:apply-templates select="/XML/Staff[Content/ContentXML/StaffProfile/Role='Partner']" mode="List"/> 
+0

是角色的屬性或元素? –

+0

角色是一個元素 – johnwards

+0

然後你需要執行'/ text()'來選擇'Role'的文本節點,因爲'Role'元素本身不等於字符串''Partner'';正如我在下面回答的那樣。 –

回答

2

我還沒有看到你的XML(你應該張貼完整性),但我認爲Role是一個XML元素,如果是這樣的情況下,相對於一個字符串將無法正常工作。試試這個:

<xsl:apply-templates 
    select="/XML/Staff[Content/ContentXML/StaffProfile/Role/text()='Partner']" 
    mode="List" /> 

如果Role是一個屬性,你需要這樣做:

<xsl:apply-templates 
    select="/XML/Staff[Content/ContentXML/StaffProfile/@Role='Partner']" 
    mode="List" /> 
+0

在http://www.mizar.dk/XPath/Default.aspx進行測試,當我回來時,答案正在等待:) –

+1

謝謝你們!我已經離開了一年的XML,所以text()完全滑落了我的心靈!我會在早上確認並接受:) – johnwards

+0

嗨,大家好,這是我的一個錯誤。工作人員元素是單數,複數是工作人員名單模板內的「內容」,它與「內容」上的匹配是我將測試和它的工作原理。我不需要執行它所用的text()函數。 – johnwards