Note that there are some explanatory texts on larger screens.

plurals
  1. POUse jQuery to filter a find result from XML
    text
    copied!<p>I have an XML document that is a 2003 Spreadsheet XML document that I need to fetch data from. The trouble is that styling of cells means the XML will include rows that have no data, but styling applied. I need to return a list of just the rows that have data in the 10th cell of every row. How can I do this with jQuery?</p> <p>XML Sample:</p> <pre><code> &lt;Worksheet ss:Name="Space"&gt; &lt;Names&gt; &lt;NamedRange ss:Name="_FilterDatabase" ss:RefersTo="=Space!R1C1:R8C13" ss:Hidden="1"/&gt; &lt;/Names&gt; &lt;Table ss:ExpandedColumnCount="13" ss:ExpandedRowCount="995" x:FullColumns="1" x:FullRows="1" ss:StyleID="s114" ss:DefaultColumnWidth="46.5"&gt; &lt;Column ss:StyleID="s115" ss:AutoFitWidth="0"/&gt; &lt;Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="142.5"/&gt; &lt;Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="95.25"/&gt; &lt;Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="75.75"/&gt; &lt;Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="93"/&gt; &lt;Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="129"/&gt; &lt;Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="17.25"/&gt; &lt;Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="41.25"/&gt; &lt;Column ss:StyleID="s115" ss:Width="236.25"/&gt; &lt;Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="135.75"/&gt; &lt;Column ss:StyleID="s116" ss:Width="51.75"/&gt; &lt;Column ss:StyleID="s116" ss:Width="53.25"/&gt; &lt;Column ss:StyleID="s116" ss:Width="18.75"/&gt; &lt;Row ss:AutoFitHeight="0" ss:Height="63" ss:StyleID="s117"&gt; &lt;Cell ss:StyleID="s87"&gt;&lt;Data ss:Type="String"&gt;Name&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;NamedCell ss:Name="Space.Name"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s87"&gt;&lt;Data ss:Type="String"&gt;CreatedBy&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s88"&gt;&lt;Data ss:Type="String"&gt;CreatedOn&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s87"&gt;&lt;Data ss:Type="String"&gt;Category&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s87"&gt;&lt;Data ss:Type="String"&gt;FloorName&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s87"&gt;&lt;Data ss:Type="String"&gt;Description&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s86"&gt;&lt;Data ss:Type="String"&gt;ExtSystem&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s86"&gt;&lt;Data ss:Type="String"&gt;ExtObject&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s86"&gt;&lt;Data ss:Type="String"&gt;ExtIdentifier&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s87"&gt;&lt;Data ss:Type="String"&gt;RoomTag&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s112"&gt;&lt;Data ss:Type="String"&gt;UsableHeight&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s112"&gt;&lt;Data ss:Type="String"&gt;GrossArea&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s195"&gt;&lt;Data ss:Type="String"&gt;NetArea&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;/Row&gt; &lt;Row&gt; &lt;Cell ss:StyleID="s125"&gt;&lt;Data ss:Type="Number"&gt;100&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;NamedCell ss:Name="Space.Name"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s126"&gt;&lt;Data ss:Type="String"&gt;.com&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s93"&gt;&lt;Data ss:Type="DateTime"&gt;2012-11-01T11:05:28.000&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s119"&gt;&lt;Data ss:Type="String"&gt;Undefined&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s120"&gt;&lt;Data ss:Type="String"&gt;01 Main Level&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s99"&gt;&lt;Data ss:Type="String"&gt;GATHER&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s121"&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s121"&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s121"&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s122"&gt;&lt;Data ss:Type="String"&gt;100 - Gathering Room&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s123"&gt;&lt;Data ss:Type="Number"&gt;52&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s123"&gt;&lt;Data ss:Type="Number"&gt;1674.1096940375501&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;Cell ss:StyleID="s124"&gt;&lt;Data ss:Type="String"&gt;n/a&lt;/Data&gt;&lt;NamedCell ss:Name="_FilterDatabase"/&gt;&lt;/Cell&gt; &lt;/Row&gt; </code></pre> <p>Code that I have so far that will return all the rows, but not filtered for Cells with Data:</p> <pre><code>$(xml).find("Worksheet[ss\\:Name='Space'] Table Row") </code></pre> <p>I have tried applying a .filter at the end of the find, but I don't understand how a filter should be applied. I would appreciate any help.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload