2013-06-20 25 views
17

Ví dụ, tôi muốn thêm một thuộc tính để nút này:Làm cách nào để đặt thuộc tính trong XML bằng XSLT?

<Party> 

Vì vậy, nó sẽ trông giống như:

<Party role="this should be set using XPath"> 

giá trị thuộc tính có đến từ XPath.

Sau đây sẽ không làm việc :)

<Party role=<xsl:value-of select="some/xpath/path"/>> 

Làm thế nào để làm điều đó?

Trả lời

29

Thuộc tính của các yếu tố kết quả đen hỗ trợ thuộc tính giá trị mẫu cú pháp, sử dụng {}:

<Party role="{some/xpath/path}"> 
10
<xsl:template match="Party"> 
    <Party role="{some/xpath/path}"> 
    <xsl:apply-templates select="@* | node()"/> 
    </Party> 
</xsl:template> 

nên làm. Thay thế

<xsl:template match="Party"> 
    <xsl:copy> 
    <xsl:attribute name="role" select="some/xpath/path"/> 
    <xsl:apply-templates select="@* | node()"/> 
    </xsl:copy> 
</xsl:template> 

Tất nhiên, các mẫu chỉ cần thiết nếu có thuộc tính và/hoặc nút con bạn muốn xử lý (ví dụ như mẫu được chuyển đổi nhận dạng sao chép).

2

bạn có thể thử các mẫu dưới đây:

<xsl:for-each select="YOUR_SELECT_PATH"> 
    <a> 
    <Party> <xsl:attribute name="role"><xsl:value-of select="@source"/></xsl:attribute> </Party> 
    <xsl:value-of select="."/> 
    </a> 
</xsl:for-each> 

Ở đây tôi đang thiết vai trò thuộc tính để một Đảng nút xml.

Các vấn đề liên quan