gpt4 book ai didi

java - 如何将带有标签的字符串转换为xml?

转载 作者:行者123 更新时间:2023-12-01 16:03:08 24 4
gpt4 key购买 nike

例如,解析下面的字符串并使用 java 从中生成有效的 xml 文档的最佳方法是什么?例如,'\b' 将被转换为 <b> </b> , 空格到 </space>我对 xml 很陌生,所以问这个非常愚蠢的问题,抱歉。 :)

示例字符串:

Lorem\B ipsum\I dolor\B sat\COLOR=RGB(255,0,0)amet\COLOR=RGB(0,255,0) consectetur\COLOR adipisicing\COLOR elit。

提前致谢!

最佳答案

将其转换为 xml 的机制非常简单,您可以编写一个通用解析器,将其解析为字符串,然后使用文档阅读器进行转换(这很简单,但意味着您必须验证它),或者生成随着您的进行,xml(更复杂但减少了验证)。上面示例中的问题是定义您的语言允许的内容:

Lorem\B ipsum\I dolor\B sit \COLOR=RGB(255,0,0)amet\COLOR

这应该是这样的

Lorem<b> ipsum<i> dolor</b> sit<color>=rgb(255,0,0)amet</color>

Lorem<b> impsum</b><i> dolor</i><b> sit</b><color>RGB(255,0,0)amet</color><color>

似乎都不是您想要的,第一个无效,第二个意味着您可以将一个单词设置为粗体(而不是粗体和斜体)。

它似乎又回到了 sgml,您需要一个额外的文件来知道允许什么。

但是测试它的最简单方法就是创建一个解析器并将结果加载到字符串构建器中,然后当你完成后,你只需要执行类似的操作

StringBuilder stringbuilder = new StringBuilder();
...
// parse the input string into the stringbuilder
...
String xml = stringbuilder.toString();
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xml)));

如果你想要的话,会在 dom 中给你答案(或者如果你使用上面的字符串则抛出异常)

关于java - 如何将带有标签的字符串转换为xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3333821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com