0

xmlproperty を使用してノードを取得するために管理した xml ファイルをループする際に助けが必要ですが、複数のパラメーターがある場合にノードをループする方法に苦労しています。

したがって、ここにフォーマットがあります:

<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

Mavenに切り替えてからではなく、何年もANTを使用していません。

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 に答える