定位 Digester 中的特定属性 - Java
我正在使用 Apache Commons Digester 并尝试在结构中找到要包含在对象中的特定标记。
<父级>
<图片大小=“小”>某个网址
<图片大小=“中”>某个网址
<图片大小=“大”>某个网址
<图片大小=“巨大”>某个网址
我真的只想将 medium
图像包含在我的 partent
对象中,但我不知道如何我会那么做。
现在我正在使用 digester.addBeanPropertySetter(PathToParent+"/image","image");
但这会针对每个 image
标签进行更新(因为它应该)。
理想情况下,我想要类似 digester.addBeanPropertySetter(PathToParent+"/image/medium","image"); 的东西,但你不能这样做。
I'm using the Apache Commons Digester and trying to locate a particular tag in the structure to include in the object.
<parent>
<image size="small">some url</image>
<image size="medium">some url</image>
<image size="large">some url</image>
<image size="huge">some url</image>
</parent>
I really only want the medium
image to be included in my partent
object but I'm not sure how I would do that.
Right now I'm using digester.addBeanPropertySetter(PathToParent+"/image","image");
but this gets updated for every image
tag (as it should).
Ideally I would like something like digester.addBeanPropertySetter(PathToParent+"/image/medium","image");
but you can't do that.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我省略了通用的 getter/setter。
I omitted generic getters/setters.
我实际上使用 xmlpullparser 解决了这个问题 - 这是仅获取图像属性“large”并忽略其余部分的代码 - 这是 case 语句中的最后一个“if”。
公共类 XmlPullFeedParser 扩展 BaseFeedParser {
}
I actually figured this out using the xmlpullparser - here is the code to get the image attribute "large" only and ignore the rest - it's the last "if" in the case statement.
public class XmlPullFeedParser extends BaseFeedParser {
}
我认为这是不可能的。您必须编写自己的代码来执行此类过滤。
但这很简单。如果您希望创建干净的代码,请使用
getImage(String size)
方法编写名为 ImageAccessor 的类。此方法将从消化器获取数据并将其与预定义大小的字符串(或模式)进行比较。I do not think that it is possible. You have to write your own code to perform this kind of filtering.
But it is very simple. If you wish to create clean code write class named ImageAccessor with method
getImage(String size)
. This method will get the data from digester and compare it with predefined size string (or pattern).