如何打印嵌套的xml元素?

时间:2017-06-28 15:05:05

标签: xpath jasper-reports xmldatasource

示例xml:

<Root>
  <Customers>
    <Customer>
      <CompanyName>Great Lakes Food Market</CompanyName>
      <ContactName>Howard Snyder</ContactName>
      <ContactTitle>Marketing Manager</ContactTitle>
      <Phone>(503) 555-7555</Phone>
      <FullAddress>
        <Address>2732 Baker Blvd.</Address>
        <City>Eugene</City>
        <Region>OR</Region>
        <PostalCode>97403</PostalCode>
        <Country>USA</Country>
      </FullAddress>
    </Customer>
  </Customers>
</Root>

在上面的xml中,当我使用&#34; Customer&#34;作为根节点和xpath查询为&#34; / Root / Customers / Customer&#34;,我无法打印&#34; FullAddress&#34;的子节点。当我使用&#34; FullAddress&#34;作为根节点和xpath查询为&#34; / Root / Customers / Customer / FullAddress&#34;,无法打印所有字段。

请帮我解决所有xml元素的问题,包括嵌套在一个报告中。

1 个答案:

答案 0 :(得分:1)

正确的XPath查询是

<queryString language="XPath">
    <![CDATA[/Root/Customers/Customer]]>
</queryString>

这包括两个节点,要在FullAddress节点中访问值fieldDescription节点,在定义字段时也应在Address中使用XPath,因此FullAddress/Address可通过{{1}访问}}

实施例

如果CompanyName的字段声明是

<field name="CompanyName" class="java.lang.String">
    <fieldDescription><![CDATA[CompanyName]]></fieldDescription>
</field>

例如City的字段声明是

<field name="City" class="java.lang.String">
    <fieldDescription><![CDATA[FullAddress/City]]></fieldDescription>
</field>