0

我需要一些帮助来循环通过一个 xml 文件,我设法使用 xmlproperty 获取节点,但我正在努力解决如何在有多个参数的情况下循环它们。

所以这里是格式:

<Problems>
      <Problem>
        <Rule>1</Rule>
        <ProblemDescription>1</ProblemDescription>
        <SourceFile>1</SourceFile>
        <Line>1</Line>
        <Column>1</Column>
        <Severity>Warning</Severity>
     </Problem>
     <Problem>
       <Rule>2</Rule>
       <ProblemDescription>2</ProblemDescription>
       <SourceFile>2</SourceFile>
       <Line>2</Line>
       <Column>2</Column>
      <Severity>Warning</Severity>
     </Problem>
</problems>

我想循环这个,所以我可以得到以下输出:

1 1 1 1 1 1 2 2 2 2 2

解决方案:

  <target>
    <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
      <xmltask source="problem.xml">

        <call path="/Problems/Problem">
            <param name="rule" path="Rule/text()" />
            <param name="probdesc" path="ProblemDescription/text()" />
            <actions>
                <echo>Rule: @{rule}</echo>
                <echo>Problem Description: @{probdesc}</echo>
            </actions>
            </call>
    </target>
4

2 回答 2

0

您可以使用 XPATH 表达式返回与给定模式匹配的所有内容。在您的情况下,某些标签的值。

这是一个 XPATH Ant 任务

于 2013-07-18T21:30:16.277 回答
0

多年来没有使用过 ANT,自从我切换到 maven 之后就没有使用过。

当我使用 ant 时,我会为这种功能创建一个自定义的 ant 任务。然后,您就拥有了 java 的全部功能和可读性更高的代码,但如果您需要进行更改,则必须以编译任务为代价。

这实际上取决于您要对输出做什么。如果您做的事情非常简单,则使用 xpath 的另一个答案更合适。

请参阅: http ://ant.apache.org/manual/develop.html http://docs.oracle.com/javase/tutorial/jaxp/sax/parsing.html

于 2013-07-18T21:54:45.533 回答