当前位置: 首页 > 知识库问答 >
问题:

构造混合文本/标记元素

梁丘波鸿
2023-03-14

我正在尝试将一些在StringBuilder中构建XML的代码转换为使用dom4j。

部分代码生成的结构与此类似:

<foo myattribute="bar">i am some text<aninnertag>false</aninnertag> 
(more text specific stuff <atag>woot</atag>) 
and (another section <atag>woot again</atag> etc)
</foo>

我想知道如何在dom4j中构建它。我可以为内部标记添加元素,但它不会在有意义的上下文中生成它。我可以将其全部添加为文本,但标记会被转义。

在dom4j中如何实现这样的功能?有可能吗?

这个xml很糟糕,我无法更改它。

这在输出方面显然是不正确的,但一个基本的例子是:

Element foo = new DefaultElement("foo");
foo.addText("i am some text" + "(more text specific stuff " + ")" + "and (another section "+ " etc)");
foo.addElement("aninnertag").addText("false");
foo.addElement("atag").addText("woot");
foo.addElement("atag").addText("woot again");

共有1个答案

龙华翰
2023-03-14

当您编写一个addText()调用,然后编写三个addElement()调用时,您将得到一个XML内容,其中文本在开头,XML元素在结尾。您必须交错调用addText()addElement()如下所示:

Element foo = new DefaultElement("foo");
foo.addAttribute("myattribute", "bar");
foo.addText("i am some text");
foo.addElement("aninnertag").addText("false");
foo.addText("(more text specific stuff ");
foo.addElement("atag").addText("woot");
foo.addText(") and (another section ");
foo.addElement("atag").addText("woot again");
foo.addText(" etc)");
System.out.println(foo.asXML());

这将生成以下输出:

<foo myattribute="bar">i am some text<aninnertag>false</aninnertag>
(more text specific stuff <atag>woot</atag>) and (another section
<atag>woot again</atag> etc)</foo>
 类似资料:
  • 我有2个服务类,所以在控制器类2@Autowired构造器中,我运行以下异常: 严重:向类[org.springframework.web.context.ContextLoaderListener]org的侦听器实例发送上下文初始化事件时出现异常。springframework。豆。工厂BeanCreationException:autowire标记的构造函数无效:public com。Spri

  • 问题内容: 目标:从特定元素(例如li)中提取文本,而忽略各种混合在标签中的内容,即展平第一级子级,并简单地分别返回每个展平型子级的串联文本。 例: 所需文字: Central Intelligence Agency Culinary Institute of America 除了周围的定位标记阻止简单的检索。 为了分别返回每个li标签,我们使用简单的方法: 但这还包括周围的锚标签等。 仅返回属于

  • 问题内容: 我正在尝试使用来在我的Android应用中设置位置更新,但出现以下错误: LocationRequest构造函数被标记为内部,不应从应用程序访问 我的位置更新请求如下所示: 我遵循了docs和example,它们以相同的方式进行操作。如果不应该打电话给我,那么正确的方法是什么? 问题答案: 使用静态方法。

  • 我试图在HTML的pre标签中包装文本,但它不起作用。我使用下面的CSS作为我的标签。 我从如何在pre标记中换行文本? 我已添加

  • 我有一个非常简单的问题,我有一个div在一个html页面,我可以通过他的XPath访问这是:。 我想要一个XPath,可以提供这个div的所有子元素,但我找不到它。我需要用硒的findElements方法获取元素,但我测试的方法不起作用: 我的超文本标记语言代码如下: 我想这样使用XPath: 我的Java Selenium脚本如下: 我应该使用什么XPath来获取的子级? 编辑1:我确实使用了*

  • 我想知道是否有任何方法可以告诉我具有相同标记名称、文本和类(如果有)的元素与具有相同标记名称、文本和相同类(如果有)的其他元素不同。为了澄清,请考虑以下超文本标记语言片段: 现在在上面的代码中,我如何使用div标签和text将两个元素分开。另请注意,这里的两个元素没有id。 上面的例子非常简单,但实际情况可能更复杂。因此,如果您好心地向我提出一个概括的答案,我将不胜感激。谢谢。