2012-07-02 118 views
1

我必須將xslt寫入wordml(2007)文檔。有像下面這樣的超鏈接。獲取超鏈接的網址

< w:p w:rsidR="00FD086A" w:rsidRDefault="00425A76" w:rsidP="00FD086A"> 
< w: hyperlink r:id="rId4" w:history="1"> 
< w:r w:rsidR="00FD086A" w:rsidRPr="00425A76"> 
< w:rPr> 
< w:rStyle w:val="Hyperlink"/> 
< /w:rPr> 
< w:t>google</w:t> 
< /w:r> 
< /w:hyperlink> 
< /w:p> 

我想獲取鏈接名稱的url。在這裏,我想獲得「谷歌」鏈接的網址。我知道它存在於關係中,但我無法通過xslt訪問它。有人知道嗎? (大概寫一個模板?)請幫助我!

+0

沒人幫忙嗎? – Setinger

+0

您的XML與您的描述不符。 URL在哪裏?關係在哪裏? –

+0

url是在一個普通詞2007文檔的「關係」中。它就像這樣。 Setinger

回答

2

假設以下命名空間前綴宣稱:

xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" 
xmlns:pkg="http://schemas.microsoft.com/office/2006/xmlPackage" 
xmlns:rel="http://schemas.openxmlformats.org/package/2006/relationships" 
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" 

以下XPath可用於選擇在此使用「rId5」的w:hyperlink/@r:id(硬編碼的值的值的URL的值例如):

/pkg:package 
    /pkg:part 
    /pkg:xmlData 
     /rel:Relationships 
     /rel:Relationship[@Id='rId5']/@Target 

你可以使用它在w:hyperlink模板匹配的情況下,產生一個HTML錨元素,像這樣:

<xsl:template match="w:hyperlink"> 
    <a href="{/pkg:package 
       /pkg:part 
        /pkg:xmlData 
        /rel:Relationships 
         /rel:Relationship[@Id=current()/@r:id]/@Target}"> 
     <xsl:apply-templates/> 
    </a> 
</xsl:template> 
+0

你是超棒的!這就像一個魅力!我希望我能投票答覆這個答案。但我需要更多的聲譽。這真的很棒!^_^ – Setinger

+0

我還有一個問題。你也可以看一下嗎?^_^ – Setinger

+0

我投了你的答案。^_ ^ – Setinger