2013-11-04 155 views
1

我試圖使用XSLT轉換來更改XML文件中文檔元素的屬性值。例如,使用XSLT更改xml文件中文檔元素屬性的值

<?xml version="1.0" encoding="UTF-8"?> 
<ns1:xmlgMsc xmlns:ns1="org.example" formatVersion="1.0" name="BlaBlah" pathName="/system/abc.xml" writtenBy="Me me me"> 
    <ns1:blockRoot someAtt="0" anotherAtt="1" /> 
</ns1:xmlgMsc> 

這裏我想將「pathName」更改爲某個其他路徑(比如說「/local/xyz.xml」)。有人可以提供語法,或者指出我在XSLT中這樣做的正確方向嗎?

提前致謝!

回答

3

您將需要一個由兩個模板組成的樣式表。身份模板(看看它),這一個:

<xsl:template match="/*/@pathName"> 
    <xsl:attribute name="{name()}"> 
    <xsl:value-of select="'/local/xyz.xml'" /> 
    </xsl:attribute> 
</xsl:template> 

你可以使用一個<xsl:param>新路徑中通過動態,如果你不想硬編碼的新的價值。

小修正:根節點/)的XML文檔沒有屬性。您的意思是文檔元素/ns1:xmlgMsc),這是層次結構的一個級別。

+0

恐怕它不工作......任何想法,如果我做錯了什麼?這是我做的一個小小的xslt; <?xml version =「1.0」?> schwarz

+0

哎呀,我的錯誤。我已經糾正了答案。 – Tomalak