解释XPath表达式以了解特定模式

时间:2016-08-24 20:09:30

标签: xml xpath xnat

这是我第一次涉足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

1 个答案:

答案 0 :(得分:0)

在XNAT中为“免费”提供了某些字段,这些字段在管道XML中看起来并不明显。对于需要照明的任何其他人,您可以在XNAT用户组上查看this post