我试图找到一种方法来可靠地定位和替换<
不>
属于标签的 HTML/XML 格式字符串中的符号。
基本上,我从一个 HTML 字符串开始,并将其转换为 PDFLib 可用的内容,它使用一种 XML 形式来描述要编写为 PDF 的文档。但是,如果<
内容中有一个 inside,它会将其视为标签的开头并引发解析异常。
示例输入:
<p>This is a test where 6 < 9</p>
<p>This is part of <strong>The same test</strong></p>
<p>This should also work 6<99999</p>
周围的文本<
并不总是数字,它是用户输入的,可以是任何东西,例如Grade<C
, Blue<Red<Green
, Test < Test2
.... 几乎任何东西
所需输出
This is a test where 6 <charref fontname=Helvetica encoding=unicode><<resetfont> 9\n
This is part of <fontname=Helvetica fontstyle=bold encoding=unicode>The same test<resetfont>\n
This should also work 6<charref fontname=Helvetica encoding=unicode><<resetfont>99999\n
我已经尝试过str_replace
and preg_replace
,但找不到能够可靠地保留标签并仅替换<
上下文的解决方案。
解析 DOM 似乎也失败了,因为它也DOMDocument
将<
视为开始标签
htmlspecialchars
在字符串上使用会将所有标签也<>
转换<>
为不好的。
有没有人有任何想法?