scala:使用文字语法以编程方式打开和关闭 XML 标记?
我正在编写一个用于在 scala 中创建 XML 的抽象,并且我希望能够在 XML 标签打开后自动关闭它。所需的语法是灵活的,但理想情况下它看起来像这样:
tag <div> {
// define more markup in here
tag <br/>
{
// some expression that results in more XML tags
}
}
哪里是(部分)XML 文字,“标签”是自定义控制结构 - 而不必像这样显式打开和关闭标签:
<div> <br/> { /* some expression */ } </div>
我希望以仍然允许我使用 XML 文字语法的方式执行此操作,而不是通过将标签标签指定为字符串来手动创建元素。这可以用scala以任何方式实现吗?
i'm writing an abstraction for creating XML in scala, and i'd like to be able to automatically close an XML tag once it is open. the desired syntax is flexible, but ideally it would look something like this:
tag <div> {
// define more markup in here
tag <br/>
{
// some expression that results in more XML tags
}
}
where is a (partial) XML literal and "tag" is a custom control structure -
instead of having to explicitly open and close tags like this:
<div> <br/> { /* some expression */ } </div>
i'd like to do this in a way that still lets me use XML literal syntax, as opposed to manually creating element by specifying the tag label as a string, for example. is this possible in any way with scala?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是使用新的 的示例Scala 2.9 中的动态特征。您必须使用 -Xexperimental 来编译它。如果您只需要一定数量的标签(例如所有 html 标签),您可以在 2.8 中为每个标签编写一个方法来执行相同的操作。
该代码示例打印
三
。Here is an example using the new Dynamic trait in Scala 2.9. You will have to compile it with
-Xexperimental
. If you only need a certain number of tags(such as all html tags) you can do the same in 2.8 by writing one method per tag.The code sample prints
<one><two>three</two></one>
.