读取并选择 CSS Style 属性值
如何读取如下所示的元素/标签 - 使用 xsl + xpath,我试图格式化 xml 输出以从 style 属性读取对齐标签,但我无法弄清楚...(最后的手段 c#)
编辑:为了让我的答案清楚,我可能会阅读许多html文档,我很可能会有一个需要解析的允许标签列表,所以并不是所有内容都需要解析,因为我正在使用xslt来转换teh到目前为止,我正在编写我的解决方案,只记住 xsl + xpath,但是如果我要使用 c# 和 linq (迭代文档) - 显然这将设置所有样式,那么我将使用以下命令转换我的文档其他补充。
<h1 style="text-align: right;">Another chapter</h1>
我的 Xsl:
<xsl:template match="h1">
<fo:block color="black" font-family="Arial, Verdana, sans-serif">
<xsl:call-template name="set-alignment"/>
</fo:block>
</xsl:template>
<xsl:template name="set-alignment">
<xsl:choose>
<xsl:when test="@align='left'">
<xsl:attribute name="text-align">start</xsl:attribute>
</xsl:when>
<xsl:when test="@align='center'">
<xsl:attribute name="text-align">center</xsl:attribute>
</xsl:when>
<xsl:when test="@align='right'">
<xsl:attribute name="text-align">end</xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:template>
注意,下面只定义了一种样式,但可能有很多...(下划线等)
所需的输出:
<h1 text-align="start" text-decoration="underline" >Another chapter</h1>
How can I read an element/ tag like below - using xsl + xpath, I am trying to format the xml output to read the alignment tag from the style attribute, but I cannot figure it out... (last resort c#)
EDIT: To make my answer clear, I could be reading many html documents, I will most likely have a list of allowed tags that I need parsing so not everything will need parsing, as I am using xslt to transfortm teh document into xml I am writing my solution so far keeping only xsl + xpath in mind, however if I was to use c# and linq (to iterate over the document) - obviously that will set up all the styles then I will transform my document with other additions.
<h1 style="text-align: right;">Another chapter</h1>
My Xsl:
<xsl:template match="h1">
<fo:block color="black" font-family="Arial, Verdana, sans-serif">
<xsl:call-template name="set-alignment"/>
</fo:block>
</xsl:template>
<xsl:template name="set-alignment">
<xsl:choose>
<xsl:when test="@align='left'">
<xsl:attribute name="text-align">start</xsl:attribute>
</xsl:when>
<xsl:when test="@align='center'">
<xsl:attribute name="text-align">center</xsl:attribute>
</xsl:when>
<xsl:when test="@align='right'">
<xsl:attribute name="text-align">end</xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:template>
Note, there is only one style defined below, but there could be many... (underline etc.)
Desired output:
<h1 text-align="start" text-decoration="underline" >Another chapter</h1>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用众所周知的标记化模式,此样式表:
输出:
With the well known tokenization pattern, this stylesheet:
Output: