2015-10-19 45 views
0

我有HTML標記如下:逃離 「QUOT」 使用XSLT 1.0從HTML屬性

<input type="hidden" name="englishLongDesc" value ="Box height is 5.0 mm (2.9"/74mm length) used for packing"/> 

我已經使用XSLT 1.0如下所示來獲取它的值:

<content name="Box Description" > 
      <xsl:value-of select="./input[@name='englishLongDesc']/@value" /> 
</content> 

我我正在得到答案箱子高度爲5.0毫米(2.9

因爲其他e是「(之間)」。

問題:我不能改變HTML值,但我可以取完整值(即框高度是用於包裝5.0毫米(2.9" /74毫米長度))通過XSLT 1.0

回答

1

否*,? 。因爲XSLT代碼是做「正確」的事情這是哪個壞的HTML

此:

<input type="hidden" name="englishLongDesc" value ="Box height is 5.0 mm (2.9"/74mm length) used for packing"/> 

被打破HTML價值的內容屬性雷爾。 y是:

Box height is 5.0 mm (2.9 

而這一點就是垃圾:

/74mm length) used for packing" 

[*]因爲這是垃圾標籤湯,很可能是DOM模型中仍存在雜散文本()節點的地方。通過分析DOM模型本身(編寫一個XSLT樣式表),您可能能夠找出一個額外的表達式來抓取尾部位並使用連接來解決問題。

+0

那麼,沒有辦法完全獲取它? –

+0

唯一可行的解​​決方案是編輯HTML。我對嗎? –

+0

不是直接。這將取決於解析器如何處理標籤湯以及它產生的DOM結構。由於XSLT在文檔的DOM/XPath模型上運行,因此您完全依賴解析器可以提供的任何「優雅」降級。 – user268396