需要处理URL中的特殊字符

时间:2011-03-01 07:42:31

标签: java xml

我的输入html是

<p>
<span>first
</span>
<a href="http://tools.google.com/dlpage/cloudconnect#utm_campaign=launch&utm_source=en-na-us-gdb-GCC-Appsperience_02242011&utm_medium=blog"><span>Google Cloud Connect for Microsoft Office</span></a>
</p>

我使用xslt1.0将html转换为xml..my输出xml是

<Relationship Id="rId12700703801" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="http://tools.google.com/dlpage/cloudconnect#utm_campaign=launch&utm_source=en-na-us-gdb-GCC-Appsperience_02242011&utm_medium=blog" TargetMode="External"/></Relationships>

在目标属性中的location =(在启动&amp; utm_source之后)出现错误“XML解析错误:格式不正确”。

我想通过xslt转义url中的特殊字符并生成xml。 请帮我。提前谢谢..

2 个答案:

答案 0 :(得分:2)

你正在生成输入html吗?如果是这样,你可以使用URLEncoder.encode来正确编码字符串,这样变换器就不会抱怨语法。

如果这只是一个随机的html页面,并且你无法控制它,那么你可能需要使用一些html解析器,例如tagsoup,et。 al,预先纠正它,因为大多数html文件没有正确格式化。

答案 1 :(得分:1)

XSLT期望XML作为输入,而不是HTML。如果要使用XSLT对其进行转换,则需要将HTML转换为XML。

我认为可以使用HTML Tidy进行此操作。