这是我第一次涉足XML。我试图理解基于Java的XML管道处理结构,但我对XPath的使用有点困惑。基本的缩写结构如下。特别是,我试图围绕XNAT数据库的pipeline schema。
<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
参数的值...它本身似乎是一个与类似参数略有不同的XPath表达式名称builddir
,但该参数似乎不存在于管道架构中的任何位置......整个项目可能有点过于涉及到堆栈交换问题,但也许有人可能指出我正确的方向...
同样,上面的代码已经缩写。可以找到完整的.xml here。