XSLT - 如何将节点中的内联/转义 XML 视为嵌套节点



XSLT新手 - 到目前为止还不喜欢它。

尝试保留转换为 PDF 的应用程序接收的某些 HTML(表格(格式。

需要一种 xslt 方法来将 XML 节点中的转义 HTML/XML 数据解释为其他子节点?

在该节点上尝试过 v3 parse-xml((。
尝试过 v1 搜索/替换模板将&lt;转换为<等。 试过disable-output-escaping="yes"- 不。

由于某种原因,似乎没有任何工作。

源 XML:

<?xml version="1.0" encoding="windows-1252"?>
<Report>
<node1>node1</node1>
<node2>node2</node2>
<node3>node3</node3>
<node4>
<node4a_with_nested_xml>Nestedxml text$lt;br/$gt;
$lt;b$gt;
$lt;u$gt;blah blah blah$lt;/u$gt;
$lt;/b$gt;
$lt;br/$gt;
$lt;table$gt;
$lt;tr$gt;
$lt;td$gt;
$lt;br/$gt;blah blah blah$lt;br/$gt;
$lt;/td$gt;
$lt;/tr$gt;
$lt;/table$gt;
$lt;b$gt;
$lt;u$gt;blah blah blah$lt;/u$gt;
$lt;/b$gt;
$lt;br/$gt;
$lt;table$gt;
$lt;tr$gt;
$lt;td$gt;
$lt;br/$gt;blah blah blah$lt;/td$gt;
$lt;td$gt;blah blah blah$lt;br/$gt;Other:$lt;/td$gt;
$lt;td$gt;blah blah blah$lt;br/$gt;
$lt;/td$gt;
$lt;/tr$gt;
$lt;/table$gt;
</node4a_with_nested_xml>
</node4>
</Report>

需要解释为:

<?xml version="1.0" encoding="windows-1252"?>
<Report>
<node1>node1</node1>
<node2>node2</node2>
<node3>node3</node3>
<node4>
<node4a_with_nested_xml>
Nestedxml text
<br/>
<b>
<u>blah blah blah</u>
</b>
<br/>
<table>
<tr>
<td>
<br/>blah blah blah<br/>
</td>
</tr>
</table>
<b>
<u>blah blah blah</u>
</b>
<br/>
<table>
<tr>
<td>
<br/>blah blah blah
</td>
<td>
blah blah blah<br/>Other:
</td>
<td>blah blah blah<br/>
</td>
</tr>
</table>
</node4a_with_nested_xml>
</node4>
</Report>

然后从那里我可以开始拉入子节点并用它们做一些事情 例如:

<xsl:for-each select="Report">
<xsl:for-each select="node4">
<xsl:for-each select="node4a_with_nested_xml">
<xsl:value-of select="."/>
<xsl:for-each select="table">
<fo:table>
<xsl:for-each select="tr">
<fo:table-row>
<xsl:for-each select="td">
<fo:table-cell>
<xsl:value-of select="."/>
<xsl:for-each select="br">
<fo:block/>
</xsl:for-each>
</fo:table-cell>
</xsl:for-each>
</fo:table-row>
</xsl:for-each>
</fo:table>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>

在 XSLT 1.0 中,必须分两次执行转换:首先,禁用node4a_with_nested_xml上的输出转义并将结果保存到文件中;然后使用另一个 XSLT 样式表处理生成的文件。

这是假设您的处理器支持disable-output-escaping并且转义的字符串包含格式正确的 XML。

最新更新