我正在制作一个视频转换器作为一个假期项目。我计划使用 XML 文件来表示待处理的任务,以便用户可以保存任务。这是它的样子:
<?xml version="1.0" ?>
<task-list>
<task>
<input-location> </input-location>
<output-location> </output-location>
<bit-rate> </bit-rate>
<output-width> </output-width>
<output-height> </output-height>
<target-device> </target-device>
</task>
.
.
.
.
</task-list>
现在,这就是我的想法:
1. 将其解析为org.w3c.dom.Document
2. 使用 XPath 获取NodeList
将包含所有内容<task>
及其子项的内容。
3. 创建一个Vector<Task>
whereTask
是一个自定义类。每个Task
对象都会包含一个4. 在与每个对象关联org.w3c.dom.Node
的上下文中使用 XPath来获取相关信息。 Node
Task
但这里有一个问题:我如何改变Node
? 也许用户想要更改输出位置。我将不得不对相关Task
对象的Node
,进行更改org.w3c.dom.Document
(它还保存了已保存文件中的节点副本)并将其保存到文件中(为了下次运行转换器时的一致性)。
使用 XPath 会变得非常麻烦。XPath 有利于数据“恢复”,但不适合改变,我想。
公共课任务
public class Task{
Node taskInfo;
JProgressBar progressBar; // Visual feedback to the user
.
.
.
.
.
// getters and setters
}
我可以让 getter 使用 XPath 工作。二传手是问题所在。