如何使用XSL样式表操纵我的XML输出

时间:2014-02-25 01:23:55

标签: xml xml-parsing xslt-1.0

我有一个像这样输出XML的SQL查询:

<root>
<ELECTION>
    <title1>Carroll County Board Dist. 2</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5188</Winner>
    <WinningVotes>1445</WinningVotes>
    <WinningParty>D</WinningParty>
    <Winner1>Gary Imel</Winner1>
    <WinnerSelected>1</WinnerSelected>
    <WinnerPercent>27</WinnerPercent>
    <Loser>5187</Loser>
    <LosingVotes>1382</LosingVotes>
    <LosingParty>D</LosingParty>
    <Loser2>Ronald Preston</Loser2>
    <LoserPercent>26</LoserPercent>
    <LoserSelected>0</LoserSelected>
    <title1>Carroll County Board Dist. 2</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5189</Winner>
    <WinningVotes>1281</WinningVotes>
    <WinningParty>R</WinningParty>
    <Winner>CherylCole</Winner>
    <WinnerSelected>0</WinnerSelected>
    <PrecintPercent>100</PrecintPercent>
    <Loser>5190</Loser>
    <LosingVotes>1208</LosingVotes>
    <LosingParty>R</LosingParty>
    <Loser>AnnetteRahn</Loser>
    <LoserSelected>0</LoserSelected>
  </ELECTION>
  <ELECTION>
    <title1>Henry County Circuit Clerk</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5192</Winner>
    <WinningVotes>12893</WinningVotes>
    <WinningParty>R</WinningParty>
    <Winner1>Jackie Oberg</Winner1>
    <WinnerSelected>1</WinnerSelected>
    <WinnerPercent>56</WinnerPercent>
    <Loser>5191</Loser>
    <LosingVotes>10214</LosingVotes>
    <LosingParty>D</LosingParty>
    <Loser2>David Guzzardo</Loser2>
    <LoserPercent>44</LoserPercent>
    <LoserSelected>0</LoserSelected>
  </ELECTION>
  <ELECTION>
    <title1>Henry County Board Dist. 1</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5205</Winner>
    <WinningVotes>6408</WinningVotes>
    <WinningParty>R</WinningParty>
    <Winner1>Karen Urick</Winner1>
    <WinnerSelected>1</WinnerSelected>
    <WinnerPercent>6</WinnerPercent>
    <Loser>5204</Loser>
    <LosingVotes>6390</LosingVotes>
    <LosingParty>R</LosingParty>
    <Loser2>Tim Wells</Loser2>
    <LoserPercent>6</LoserPercent>
    <LoserSelected>1</LoserSelected>
    <title1>Henry County Board Dist. 1</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5203</Winner>
    <WinningVotes>6362</WinningVotes>
    <WinningParty>R</WinningParty>
    <Winner>KathyNelson</Winner>
    <WinnerSelected>1</WinnerSelected>
    <PrecintPercent>100</PrecintPercent>
    <Loser>5212</Loser>
    <LosingVotes>6343</LosingVotes>
    <LosingParty>R</LosingParty>
    <Loser>MarvinGradert</Loser>
    <LoserSelected>1</LoserSelected>
    <title1>Henry County Board Dist. 1</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5206</Winner>
    <WinningVotes>6281</WinningVotes>
    <WinningParty>R</WinningParty>
    <Winner>RickLivesay</Winner>
    <WinnerSelected>1</WinnerSelected>
    <PrecintPercent>100</PrecintPercent>
    <Loser>5207</Loser>
    <LosingVotes>5618</LosingVotes>
    <LosingParty>R</LosingParty>
    <Loser>LorenRathjen</Loser>
    <LoserSelected>1</LoserSelected>
    <title1>Henry County Board Dist. 1</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5208</Winner>
    <WinningVotes>5548</WinningVotes>
    <WinningParty>R</WinningParty>
    <Winner>BillPreston</Winner>
    <WinnerSelected>1</WinnerSelected>
    <PrecintPercent>100</PrecintPercent>
    <Loser>5210</Loser>
    <LosingVotes>5493</LosingVotes>
    <LosingParty>R</LosingParty>
    <Loser>JacobWaller</Loser>
    <LoserSelected>1</LoserSelected>
    <title1>Henry County Board Dist. 1</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5194</Winner>
    <WinningVotes>5479</WinningVotes>
    <WinningParty>D</WinningParty>
    <Winner>AnnDeSmith</Winner>
    <WinnerSelected>1</WinnerSelected>
    <PrecintPercent>100</PrecintPercent>
    <Loser>5193</Loser>
    <LosingVotes>5269</LosingVotes>
    <LosingParty>D</LosingParty>
    <Loser>JoAnneHillman</Loser>
    <LoserSelected>1</LoserSelected>
    <title1>Henry County Board Dist. 1</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5211</Winner>
    <WinningVotes>5116</WinningVotes>
    <WinningParty>R</WinningParty>
    <Winner>CharlesLotridge</Winner>
    <WinnerSelected>0</WinnerSelected>
    <PrecintPercent>100</PrecintPercent>
    <Loser>5209</Loser>
    <LosingVotes>5103</LosingVotes>
    <LosingParty>R</LosingParty>
    <Loser>JonZahm</Loser>
    <LoserSelected>0</LoserSelected>
    <title1>Henry County Board Dist. 1</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5195</Winner>
    <WinningVotes>5034</WinningVotes>
    <WinningParty>D</WinningParty>
    <Winner>JosephSwan</Winner>
    <WinnerSelected>0</WinnerSelected>
    <PrecintPercent>100</PrecintPercent>
    <Loser>5196</Loser>
    <LosingVotes>4674</LosingVotes>
    <LosingParty>D</LosingParty>
    <Loser>BettyMurphy</Loser>
    <LoserSelected>0</LoserSelected>
    <title1>Henry County Board Dist. 1</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5201</Winner>
    <WinningVotes>4639</WinningVotes>
    <WinningParty>D</WinningParty>
    <Winner>KarenRussell</Winner>
    <WinnerSelected>0</WinnerSelected>
    <PrecintPercent>100</PrecintPercent>
    <Loser>5198</Loser>
    <LosingVotes>4611</LosingVotes>
    <LosingParty>D</LosingParty>
    <Loser>DennisSullivan</Loser>
    <LoserSelected>0</LoserSelected>
    <title1>Henry County Board Dist. 1</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5200</Winner>
    <WinningVotes>4559</WinningVotes>
    <WinningParty>D</WinningParty>
    <Winner>JimKing</Winner>
    <WinnerSelected>0</WinnerSelected>
    <PrecintPercent>100</PrecintPercent>
    <Loser>5197</Loser>
    <LosingVotes>4555</LosingVotes>
    <LosingParty>D</LosingParty>
    <Loser>IanMalmstrom</Loser>
    <LoserSelected>0</LoserSelected>
    <title1>Henry County Board Dist. 1</title1>
    <PrecintPercent>100</PrecintPercent>
    <Winner>5199</Winner>
    <WinningVotes>4323</WinningVotes>
    <WinningParty>D</WinningParty>
    <Winner>JimEccher</Winner>
    <WinnerSelected>0</WinnerSelected>
    <PrecintPercent>100</PrecintPercent>
    <Loser>5202</Loser>
    <LosingVotes>3734</LosingVotes>
    <LosingParty>D</LosingParty>
    <Loser>JohnSmith</Loser>
    <LoserSelected>0</LoserSelected>
  </ELECTION>
</root>

我希望每个<title1>通过</LoserSelected>包裹<ELECTION></ELECTION>正确格式化为XML文档。其中一些比赛只有2名候选人。一些比赛有19个以上的候选人。不幸的是,我的自动收报机一次只能显示2个候选人。因此,<title1>之间</LoserSelected>的所有内容都包含我需要为2个候选者解析的数据。我打算尝试msxsl inputfile.xml translation.xsl -o outputfile.xml

上述所需输出的一个例子是:

        <root>
        <ELECTION>
            <title1>Carroll County Board Dist. 2</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5188</Winner>
            <WinningVotes>1445</WinningVotes>
            <WinningParty>D</WinningParty>
            <Winner1>Gary Imel</Winner1>
            <WinnerSelected>1</WinnerSelected>
            <WinnerPercent>27</WinnerPercent>
            <Loser>5187</Loser>
            <LosingVotes>1382</LosingVotes>
            <LosingParty>D</LosingParty>
            <Loser2>Ronald Preston</Loser2>
            <LoserPercent>26</LoserPercent>
            <LoserSelected>0</LoserSelected>
</ELECTION>
            <title1>Carroll County Board Dist. 2</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5189</Winner>
            <WinningVotes>1281</WinningVotes>
            <WinningParty>R</WinningParty>
            <Winner>CherylCole</Winner>
            <WinnerSelected>0</WinnerSelected>
            <PrecintPercent>100</PrecintPercent>
            <Loser>5190</Loser>
            <LosingVotes>1208</LosingVotes>
            <LosingParty>R</LosingParty>
            <Loser>AnnetteRahn</Loser>
            <LoserSelected>0</LoserSelected>
          </ELECTION>
          <ELECTION>
            <title1>Henry County Circuit Clerk</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5192</Winner>
            <WinningVotes>12893</WinningVotes>
            <WinningParty>R</WinningParty>
            <Winner1>Jackie Oberg</Winner1>
            <WinnerSelected>1</WinnerSelected>
            <WinnerPercent>56</WinnerPercent>
            <Loser>5191</Loser>
            <LosingVotes>10214</LosingVotes>
            <LosingParty>D</LosingParty>
            <Loser2>David Guzzardo</Loser2>
            <LoserPercent>44</LoserPercent>
            <LoserSelected>0</LoserSelected>
          </ELECTION>
          <ELECTION>
            <title1>Henry County Board Dist. 1</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5205</Winner>
            <WinningVotes>6408</WinningVotes>
            <WinningParty>R</WinningParty>
            <Winner1>Karen Urick</Winner1>
            <WinnerSelected>1</WinnerSelected>
            <WinnerPercent>6</WinnerPercent>
            <Loser>5204</Loser>
            <LosingVotes>6390</LosingVotes>
            <LosingParty>R</LosingParty>
            <Loser2>Tim Wells</Loser2>
            <LoserPercent>6</LoserPercent>
            <LoserSelected>1</LoserSelected>
    </ELECTION>
          <ELECTION>
            <title1>Henry County Board Dist. 1</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5203</Winner>
            <WinningVotes>6362</WinningVotes>
            <WinningParty>R</WinningParty>
            <Winner>KathyNelson</Winner>
            <WinnerSelected>1</WinnerSelected>
            <PrecintPercent>100</PrecintPercent>
            <Loser>5212</Loser>
            <LosingVotes>6343</LosingVotes>
            <LosingParty>R</LosingParty>
            <Loser>MarvinGradert</Loser>
            <LoserSelected>1</LoserSelected>
</ELECTION>
            <title1>Henry County Board Dist. 1</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5206</Winner>
            <WinningVotes>6281</WinningVotes>
            <WinningParty>R</WinningParty>
            <Winner>RickLivesay</Winner>
            <WinnerSelected>1</WinnerSelected>
            <PrecintPercent>100</PrecintPercent>
            <Loser>5207</Loser>
            <LosingVotes>5618</LosingVotes>
            <LosingParty>R</LosingParty>
            <Loser>LorenRathjen</Loser>
            <LoserSelected>1</LoserSelected>
    </ELECTION>
          <ELECTION>
            <title1>Henry County Board Dist. 1</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5208</Winner>
            <WinningVotes>5548</WinningVotes>
            <WinningParty>R</WinningParty>
            <Winner>BillPreston</Winner>
            <WinnerSelected>1</WinnerSelected>
            <PrecintPercent>100</PrecintPercent>
            <Loser>5210</Loser>
            <LosingVotes>5493</LosingVotes>
            <LosingParty>R</LosingParty>
            <Loser>JacobWaller</Loser>
            <LoserSelected>1</LoserSelected>
    </ELECTION>
          <ELECTION>
            <title1>Henry County Board Dist. 1</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5194</Winner>
            <WinningVotes>5479</WinningVotes>
            <WinningParty>D</WinningParty>
            <Winner>AnnDeSmith</Winner>
            <WinnerSelected>1</WinnerSelected>
            <PrecintPercent>100</PrecintPercent>
            <Loser>5193</Loser>
            <LosingVotes>5269</LosingVotes>
            <LosingParty>D</LosingParty>
            <Loser>JoAnneHillman</Loser>
            <LoserSelected>1</LoserSelected>
    </ELECTION>
          <ELECTION>
            <title1>Henry County Board Dist. 1</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5211</Winner>
            <WinningVotes>5116</WinningVotes>
            <WinningParty>R</WinningParty>
            <Winner>CharlesLotridge</Winner>
            <WinnerSelected>0</WinnerSelected>
            <PrecintPercent>100</PrecintPercent>
            <Loser>5209</Loser>
            <LosingVotes>5103</LosingVotes>
            <LosingParty>R</LosingParty>
            <Loser>JonZahm</Loser>
            <LoserSelected>0</LoserSelected>
    </ELECTION>
          <ELECTION>
            <title1>Henry County Board Dist. 1</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5195</Winner>
            <WinningVotes>5034</WinningVotes>
            <WinningParty>D</WinningParty>
            <Winner>JosephSwan</Winner>
            <WinnerSelected>0</WinnerSelected>
            <PrecintPercent>100</PrecintPercent>
            <Loser>5196</Loser>
            <LosingVotes>4674</LosingVotes>
            <LosingParty>D</LosingParty>
            <Loser>BettyMurphy</Loser>
            <LoserSelected>0</LoserSelected>
    </ELECTION>
          <ELECTION>
            <title1>Henry County Board Dist. 1</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5201</Winner>
            <WinningVotes>4639</WinningVotes>
            <WinningParty>D</WinningParty>
            <Winner>KarenRussell</Winner>
            <WinnerSelected>0</WinnerSelected>
            <PrecintPercent>100</PrecintPercent>
            <Loser>5198</Loser>
            <LosingVotes>4611</LosingVotes>
            <LosingParty>D</LosingParty>
            <Loser>DennisSullivan</Loser>
            <LoserSelected>0</LoserSelected>
    </ELECTION>
          <ELECTION>
            <title1>Henry County Board Dist. 1</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5200</Winner>
            <WinningVotes>4559</WinningVotes>
            <WinningParty>D</WinningParty>
            <Winner>JimKing</Winner>
            <WinnerSelected>0</WinnerSelected>
            <PrecintPercent>100</PrecintPercent>
            <Loser>5197</Loser>
            <LosingVotes>4555</LosingVotes>
            <LosingParty>D</LosingParty>
            <Loser>IanMalmstrom</Loser>
            <LoserSelected>0</LoserSelected>
    </ELECTION>
          <ELECTION>
            <title1>Henry County Board Dist. 1</title1>
            <PrecintPercent>100</PrecintPercent>
            <Winner>5199</Winner>
            <WinningVotes>4323</WinningVotes>
            <WinningParty>D</WinningParty>
            <Winner>JimEccher</Winner>
            <WinnerSelected>0</WinnerSelected>
            <PrecintPercent>100</PrecintPercent>
            <Loser>5202</Loser>
            <LosingVotes>3734</LosingVotes>
            <LosingParty>D</LosingParty>
            <Loser>JohnSmith</Loser>
            <LoserSelected>0</LoserSelected>
          </ELECTION>
        </root>

正如你所看到的,亨利郡有很多候选人,但我只能用我的自动收报机一次写两个候选人。如果我使用<ELECTION></ELECTION>标记包含每组2名候选人,我可以正确解析它。

截至目前,我已将此作为

FOR XML PATH ('ELECTION'), root('root')

因此它确实已生成<ELECTION></ELECTION>

任何人都可以提供帮助,或提供任何建议来正确格式化XML吗?

谢谢

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

我相信这个样式表可以解决您的问题

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">
    <xsl:output indent="yes"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>


    <xsl:template match="ELECTION">
        <xsl:apply-templates/>
    </xsl:template>

    <xsl:template match="root">
        <xsl:copy>
            <xsl:for-each select="descendant::title1">
                <xsl:variable name="current_pos" select="position()"/>
                <ELECTION>
                    <xsl:copy-of select="."/>
                    <xsl:apply-templates select="following::*[not(descendant-or-self::title1)][not(preceding::title1[position() &gt; $current_pos])]"></xsl:apply-templates>
                </ELECTION>
            </xsl:for-each>
        </xsl:copy>
    </xsl:template>

</xsl:stylesheet>

当应用于您的输入XML时,它会生成:

<root>
   <ELECTION>
      <title1>Carroll County Board Dist. 2</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5188</Winner>
      <WinningVotes>1445</WinningVotes>
      <WinningParty>D</WinningParty>
      <Winner1>Gary Imel</Winner1>
      <WinnerSelected>1</WinnerSelected>
      <WinnerPercent>27</WinnerPercent>
      <Loser>5187</Loser>
      <LosingVotes>1382</LosingVotes>
      <LosingParty>D</LosingParty>
      <Loser2>Ronald Preston</Loser2>
      <LoserPercent>26</LoserPercent>
      <LoserSelected>0</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Carroll County Board Dist. 2</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5189</Winner>
      <WinningVotes>1281</WinningVotes>
      <WinningParty>R</WinningParty>
      <Winner>CherylCole</Winner>
      <WinnerSelected>0</WinnerSelected>
      <PrecintPercent>100</PrecintPercent>
      <Loser>5190</Loser>
      <LosingVotes>1208</LosingVotes>
      <LosingParty>R</LosingParty>
      <Loser>AnnetteRahn</Loser>
      <LoserSelected>0</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Circuit Clerk</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5192</Winner>
      <WinningVotes>12893</WinningVotes>
      <WinningParty>R</WinningParty>
      <Winner1>Jackie Oberg</Winner1>
      <WinnerSelected>1</WinnerSelected>
      <WinnerPercent>56</WinnerPercent>
      <Loser>5191</Loser>
      <LosingVotes>10214</LosingVotes>
      <LosingParty>D</LosingParty>
      <Loser2>David Guzzardo</Loser2>
      <LoserPercent>44</LoserPercent>
      <LoserSelected>0</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Board Dist. 1</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5205</Winner>
      <WinningVotes>6408</WinningVotes>
      <WinningParty>R</WinningParty>
      <Winner1>Karen Urick</Winner1>
      <WinnerSelected>1</WinnerSelected>
      <WinnerPercent>6</WinnerPercent>
      <Loser>5204</Loser>
      <LosingVotes>6390</LosingVotes>
      <LosingParty>R</LosingParty>
      <Loser2>Tim Wells</Loser2>
      <LoserPercent>6</LoserPercent>
      <LoserSelected>1</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Board Dist. 1</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5203</Winner>
      <WinningVotes>6362</WinningVotes>
      <WinningParty>R</WinningParty>
      <Winner>KathyNelson</Winner>
      <WinnerSelected>1</WinnerSelected>
      <PrecintPercent>100</PrecintPercent>
      <Loser>5212</Loser>
      <LosingVotes>6343</LosingVotes>
      <LosingParty>R</LosingParty>
      <Loser>MarvinGradert</Loser>
      <LoserSelected>1</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Board Dist. 1</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5206</Winner>
      <WinningVotes>6281</WinningVotes>
      <WinningParty>R</WinningParty>
      <Winner>RickLivesay</Winner>
      <WinnerSelected>1</WinnerSelected>
      <PrecintPercent>100</PrecintPercent>
      <Loser>5207</Loser>
      <LosingVotes>5618</LosingVotes>
      <LosingParty>R</LosingParty>
      <Loser>LorenRathjen</Loser>
      <LoserSelected>1</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Board Dist. 1</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5208</Winner>
      <WinningVotes>5548</WinningVotes>
      <WinningParty>R</WinningParty>
      <Winner>BillPreston</Winner>
      <WinnerSelected>1</WinnerSelected>
      <PrecintPercent>100</PrecintPercent>
      <Loser>5210</Loser>
      <LosingVotes>5493</LosingVotes>
      <LosingParty>R</LosingParty>
      <Loser>JacobWaller</Loser>
      <LoserSelected>1</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Board Dist. 1</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5194</Winner>
      <WinningVotes>5479</WinningVotes>
      <WinningParty>D</WinningParty>
      <Winner>AnnDeSmith</Winner>
      <WinnerSelected>1</WinnerSelected>
      <PrecintPercent>100</PrecintPercent>
      <Loser>5193</Loser>
      <LosingVotes>5269</LosingVotes>
      <LosingParty>D</LosingParty>
      <Loser>JoAnneHillman</Loser>
      <LoserSelected>1</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Board Dist. 1</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5211</Winner>
      <WinningVotes>5116</WinningVotes>
      <WinningParty>R</WinningParty>
      <Winner>CharlesLotridge</Winner>
      <WinnerSelected>0</WinnerSelected>
      <PrecintPercent>100</PrecintPercent>
      <Loser>5209</Loser>
      <LosingVotes>5103</LosingVotes>
      <LosingParty>R</LosingParty>
      <Loser>JonZahm</Loser>
      <LoserSelected>0</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Board Dist. 1</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5195</Winner>
      <WinningVotes>5034</WinningVotes>
      <WinningParty>D</WinningParty>
      <Winner>JosephSwan</Winner>
      <WinnerSelected>0</WinnerSelected>
      <PrecintPercent>100</PrecintPercent>
      <Loser>5196</Loser>
      <LosingVotes>4674</LosingVotes>
      <LosingParty>D</LosingParty>
      <Loser>BettyMurphy</Loser>
      <LoserSelected>0</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Board Dist. 1</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5201</Winner>
      <WinningVotes>4639</WinningVotes>
      <WinningParty>D</WinningParty>
      <Winner>KarenRussell</Winner>
      <WinnerSelected>0</WinnerSelected>
      <PrecintPercent>100</PrecintPercent>
      <Loser>5198</Loser>
      <LosingVotes>4611</LosingVotes>
      <LosingParty>D</LosingParty>
      <Loser>DennisSullivan</Loser>
      <LoserSelected>0</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Board Dist. 1</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5200</Winner>
      <WinningVotes>4559</WinningVotes>
      <WinningParty>D</WinningParty>
      <Winner>JimKing</Winner>
      <WinnerSelected>0</WinnerSelected>
      <PrecintPercent>100</PrecintPercent>
      <Loser>5197</Loser>
      <LosingVotes>4555</LosingVotes>
      <LosingParty>D</LosingParty>
      <Loser>IanMalmstrom</Loser>
      <LoserSelected>0</LoserSelected>
   </ELECTION>
   <ELECTION>
      <title1>Henry County Board Dist. 1</title1>
      <PrecintPercent>100</PrecintPercent>
      <Winner>5199</Winner>
      <WinningVotes>4323</WinningVotes>
      <WinningParty>D</WinningParty>
      <Winner>JimEccher</Winner>
      <WinnerSelected>0</WinnerSelected>
      <PrecintPercent>100</PrecintPercent>
      <Loser>5202</Loser>
      <LosingVotes>3734</LosingVotes>
      <LosingParty>D</LosingParty>
      <Loser>JohnSmith</Loser>
      <LoserSelected>0</LoserSelected>
   </ELECTION>
</root>