我有一个XML的"复杂项目",然后是一个包含许多其他信息的"workitem"(在xml中),我希望这包含一个包含xml中复杂项的字符串.
例如:
但是,尝试SAX和其他java解析器我无法让它处理这一行,它不喜欢字符串中的<或","我试图转义,并将"转换为".
反正有这个吗?或者我必须提出另一种解决方案吗?
谢谢
可能最简单的解决方案是使用CDATA部分.您可以将示例转换为如下所示:
]]>
如果要为多个字符串存储多个属性,则可以使用具有不同名称的多个子元素:
]]> ]]>
或者具有标识ID的多个值元素:
]]> ]]>
我想你会发现你正在处理的XML不会解析很多解析器,因为它是无效的.如果您可以控制XML,那么您至少需要转义属性,因此它类似于:
然后,一旦提取了属性,就可以重新解析它以将其视为XML.
或者,您可以采用上述方法之一(使用CDATA部分)对XML进行一些重新分解.
如果您无法控制XML,可以尝试使用TagSoup库来解析它以了解您的工作方式.(免责声明:我只使用TagSoup for HTML,我不知道它是如何与非HTML内容一起使用的)
(标签汤网站实际上出现在ATM上,但你应该能够在网上找到足够的doco,并通过maven存储库下载)