我正在使用这个xslt 1.0
<xsl:copy-of select="//row[@type='data']/column/item/content/div/select/option[@selected='selected'][. = 'Home']/../@*"/>
它没有复制'select'元素的所有属性。
我的xml是
<row type="data">
<column>
<item>
<content>
<div id='win0divDERIVED_SS_PD_PHONE_TYPE$2'>
<select name='DERIVED_SS_PD_PHONE_TYPE$2' id='DERIVED_SS_PD_PHONE_TYPE$2' tabindex='57' size='1' class='PSDROPDOWNLIST' style='width:221px; ' onchange="if (document.readyState == 'complete') addchg_win0(this);submitAction_win0(this.form,this.name);">
<option value="BUSN">Business</option>
<option value="CAMP">Campus</option>
<option value="DORM">Dormitory</option>
<option value="FAX">FAX</option>
<option value="HOME" selected='selected'>Home</option>
</select>
</div>
</content>
</item>
</column>
</row>
有什么想法吗?我犯了哪些错误? PLS
我正在使用saxon处理器并期待HTML输出,特定的select
元素应该在输出的输入中重现。我不知道我需要仔细检查的地方?任何帮助?
答案 0 :(得分:0)
在XSLT之后使用:
<xsl:stylesheet version='1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<root>
<xsl:copy-of select="//row[@type='data']/column/item/content/div/select/option[@selected='selected'][. = 'Home']/../@*"/>
</root>
</xsl:template>
</xsl:stylesheet>
并获得以下输出:
<?xml version="1.0" encoding="UTF-8"?>
<root name="DERIVED_SS_PD_PHONE_TYPE$2" id="DERIVED_SS_PD_PHONE_TYPE$2" tabindex="57" size="1" class="PSDROPDOWNLIST" style="width:221px; " onchange="if (document.readyState == 'complete') addchg_win0(this);submitAction_win0(this.form,this.name);"/>
答案 1 :(得分:0)
如果您尝试重现该select
元素(而不仅仅是其属性),则使用copy-of
的适当路径为:
<xsl:copy-of select="//row[@type='data']/column/item/content/div/select
[option[@selected='selected'] = 'Home']"/>
在你的问题中,你说它并没有复制“所有”属性。这是否意味着它正在复制某些属性而不是其他属性?你究竟在观察什么?