这是我第一次涉足 XML。我正在尝试理解基于Java的XML管道处理结构,但是我对XPath的使用有点困惑。基本的缩写结构如下。特别是,我正试图围绕XNAT 数据库的管道模式展开思考。
<Pipeline>
<documentation>
<author>
</author>
<input-parameters>
<parameter>
<name>example_parameter</name>
<values><schemalink>xnat:imageSessionData/ID</schemalink></values>
</parameter>
</input-parameters>
</documentation>
<outputFileNamePrefix>^concat(/Pipeline/parameters/parameter[name='workdir']/values/unique/text(),'/DicomToNifti')^</outputFileNamePrefix>
<loop id="series" xpath="^/Pipeline/parameters/parameter[name='scanids']/values/list^"/>
<parameters>
<parameter>
<name>workdir</name>
<values>
<unique>^concat(/Pipeline/parameters/parameter[name='builddir']/values/unique/text(),'/',/Pipeline/parameters/parameter[name='sessionId']/values/unique/text())^</unique>
</values>
</parameter>
</parameters>
</Pipeline>
如果我理解正确,则该<outputFileNamePrefix>
元素正在使用 XPath 来选择workdir
参数的值...它本身似乎与具有 name 的类似参数略有不同的 XPath 表达式builddir
,但该参数似乎不存在于管道模式......整个项目可能有点过于复杂,无法包含在堆栈交换问题中,但也许有人可以指出我正确的方向......
同样,上面的代码已被缩写。完整的 .xml 可以在这里找到。