<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to read in an XML file with namespaces in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942358#M369521</link>
    <description>&lt;P&gt;I don't think there is anything wrong with my code, just did some more testing and also found a post on stack overflow talking about the exact same issue, so here is what I found out: the Xpath attribute selector only works on the "end" node in the path. For example, this works as Cell is the "end" or deepest node in the path:&lt;/P&gt;&lt;PRE&gt;*** XML ***;
&amp;lt;Workbook&amp;gt;&amp;lt;Worksheet&amp;gt;&amp;lt;Table&amp;gt;&amp;lt;Row&amp;gt;
    &amp;lt;Cell Index="2"&amp;gt;John Smith&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;&amp;lt;/Table&amp;gt;&amp;lt;/Worksheet&amp;gt;&amp;lt;/Workbook&amp;gt;

*** XML map ***;
...
&amp;lt;PATH syntax="XPath"&amp;gt;/Workbook/Worksheet/Table/Row/Cell[@Index="2"]&amp;lt;/PATH&amp;gt;
...&lt;/PRE&gt;&lt;P&gt;but if "John Smith" is contained in another level of node further down, it doesn't work:&lt;/P&gt;&lt;PRE&gt;*** XML ***;
&amp;lt;Workbook&amp;gt;&amp;lt;Worksheet&amp;gt;&amp;lt;Table&amp;gt;&amp;lt;Row&amp;gt;
    &amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;John Smith&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;&amp;lt;/Table&amp;gt;&amp;lt;/Worksheet&amp;gt;&amp;lt;/Workbook&amp;gt;

*** XML map ***;
...
&amp;lt;PATH syntax="XPath"&amp;gt;/Workbook/Worksheet/Table/Row/Cell[@Index="2"]/Data&amp;lt;/PATH&amp;gt;
...&lt;/PRE&gt;&lt;P&gt;It looks to me the Xpath attribute selector in SAS XML Map is NOT properly implemented. Is there any workaround? If not, how can I raise a bug report or enhancement request?&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 03 Sep 2024 17:36:26 GMT</pubDate>
    <dc:creator>kingcu</dc:creator>
    <dc:date>2024-09-03T17:36:26Z</dc:date>
    <item>
      <title>How to read in an XML file with namespaces</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942156#M369481</link>
      <description>&lt;P&gt;I am trying to read in an XML file generated by the SAS Excelxp tagset, basically it's an excel file but in xml format with a few namespaces:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
          xmlns:x="urn:schemas-microsoft-com:office:excel"
          xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
          xmlns:html="http://www.w3.org/TR/REC-html40"&amp;gt;

&amp;lt;Worksheet ss:Name="Sheet1"&amp;gt;...&amp;lt;/Worksheet&amp;gt;
&amp;lt;Worksheet ss:Name="Sheet2"&amp;gt;...&amp;lt;/Worksheet&amp;gt;
&amp;lt;Worksheet ss:Name="Sheet3"&amp;gt;...&amp;lt;/Worksheet&amp;gt;

&amp;lt;/Workbook&amp;gt;&lt;/PRE&gt;&lt;P&gt;I only want to import data from Sheet2, following the example on the SAS docs, I created the below xmlmap:&lt;/P&gt;&lt;PRE&gt;&amp;lt;?xml version="1.0" ?&amp;gt;
&amp;lt;SXLEMAP version="2.1"&amp;gt;
    &amp;lt;NAMESPACES count="1"&amp;gt;
        &amp;lt;NS id="1" prefix="ss"&amp;gt;"urn:schemas-microsoft-com:office:spreadsheet"&amp;lt;/NS&amp;gt;
    &amp;lt;/NAMESPACES&amp;gt;

    &amp;lt;TABLE name="sheet2"&amp;gt;
        &amp;lt;TABLE-PATH syntax="XPath"&amp;gt;
            /Workbook/Worksheet[@{1}Name="Sheet2"]/Table/Row
        &amp;lt;/TABLE-PATH&amp;gt;
        ...
    &amp;lt;/TABLE&amp;gt;
&amp;lt;/SXLEMAP&amp;gt;&lt;/PRE&gt;&lt;P&gt;but unfortunately, it didn't work, error log says xpath is invalid.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can someone please advise how to filter on an attribute value with namespace?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 02 Sep 2024 07:24:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942156#M369481</guid>
      <dc:creator>kingcu</dc:creator>
      <dc:date>2024-09-02T07:24:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to read in an XML file with namespaces</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942185#M369483</link>
      <description>&lt;P&gt;1. Do you miss a space?&lt;/P&gt;
&lt;PRE&gt;/Workbook/Worksheet [@{1}Name="Sheet2"]/Table/Row&lt;/PRE&gt;
&lt;P&gt;2. Do you need to use the namespace? Can't you point to something like&lt;/P&gt;
&lt;PRE&gt;/Workbook/Worksheet ss:Name="Sheet2"/Table/Row&lt;/PRE&gt;
&lt;P&gt;3. Have you tried asking SAS to generate a map and use that as your starting point?&lt;/P&gt;</description>
      <pubDate>Mon, 02 Sep 2024 10:54:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942185#M369483</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2024-09-02T10:54:58Z</dc:date>
    </item>
    <item>
      <title>Re: How to read in an XML file with namespaces</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942229#M369495</link>
      <description>&lt;P&gt;Tried 1 and 2, neither of them fixed issue. By 3, do you mean the SAS mapper tool? Unfortunately, I can't install it on my work laptop, and honestly, I doubt it can solve problem like this.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BTW, below is a few line of code that can generate an XML spreadsheet to try things out:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;ods Tagsets.ExcelXP file='/***path to save xml file***/test.xml';

title 'Listing of Class data';

proc print data=sashelp.class;
run;

ods Tagsets.ExcelXP close;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 02 Sep 2024 18:32:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942229#M369495</guid>
      <dc:creator>kingcu</dc:creator>
      <dc:date>2024-09-02T18:32:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to read in an XML file with namespaces</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942230#M369496</link>
      <description>&lt;P&gt;OK, just did some further testing, and it turned out the issue may not be with the namespace, it's with the attribute filtering, i.e., selecting elements based on certain attribute value. So, what I did is just stripping out all the namespace stuff generated by Excelxp tagset, only keep the bare-bones of the xml, like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;Workbook&amp;gt;
&amp;lt;Worksheet&amp;gt;
&amp;lt;Table&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;Obs&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Name&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;Sex&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;Age&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;Height&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;Weight&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;1&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Alfred&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;14&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;69.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;112.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;2&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Alice&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;13&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;56.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;84.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Barbara&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;13&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;65.3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;98.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;4&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Carol&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;14&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;62.8&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;102.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Henry&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;14&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;63.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;102.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;6&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;James&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;57.3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;83.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;7&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Jane&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;59.8&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;84.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;8&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Janet&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;15&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;62.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;112.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;9&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Jeffrey&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;13&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;62.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;84.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;10&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;John&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;59.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;99.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;11&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Joyce&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;11&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;51.3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;50.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Judy&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;14&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;64.3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;90.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;13&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Louise&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;56.3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;77.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;14&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Mary&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;15&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;66.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;112.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;15&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Philip&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;16&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;72.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;150.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;16&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Robert&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;64.8&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;128.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;17&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Ronald&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;15&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;67.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;133.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;18&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Thomas&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;11&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;57.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;85.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;19&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;William&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;15&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;66.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;112.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;/Table&amp;gt;
&amp;lt;/Worksheet&amp;gt;
&amp;lt;/Workbook&amp;gt;&lt;/PRE&gt;&lt;P&gt;And defining the below map to read it:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&amp;lt;?xml version="1.0" ?&amp;gt;
&amp;lt;SXLEMAP version="2.1"&amp;gt;
    &amp;lt;TABLE name="class"&amp;gt;
        &amp;lt;TABLE-PATH syntax="XPath"&amp;gt;
            /Workbook/Worksheet/Table/Row
        &amp;lt;/TABLE-PATH&amp;gt;
        
        &amp;lt;COLUMN name="var1"&amp;gt;
            &amp;lt;PATH&amp;gt;/Workbook/Worksheet/Table/Row/Cell[@Index="2"]/Data&amp;lt;/PATH&amp;gt;
            &amp;lt;TYPE&amp;gt;character&amp;lt;/TYPE&amp;gt;
            &amp;lt;DATATYPE&amp;gt;STRING&amp;lt;/DATATYPE&amp;gt;
            &amp;lt;LENGTH&amp;gt;30&amp;lt;/LENGTH&amp;gt;
        &amp;lt;/COLUMN&amp;gt;
    &amp;lt;/TABLE&amp;gt;
&amp;lt;/SXLEMAP&amp;gt;&lt;/PRE&gt;&lt;P&gt;where Cell[@Index="2"] is the standard way in Xpath to select an element based on its attribute value, but I got an error saying that:&lt;/P&gt;&lt;PRE&gt;ERROR: Xpath construct /Workbook/Worksheet/Table/Row/Cell[@Index="2"]/Data for column var1 is an invalid, unrecognized, or 
 unsupported form.
 
 ERROR: Error in the LIBNAME statement.&lt;/PRE&gt;&lt;P&gt;It looks to me that SAS XML map may not support this attribute filtering. Can someone please confirm and possibly advise on a solution?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 02 Sep 2024 19:41:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942230#M369496</guid>
      <dc:creator>kingcu</dc:creator>
      <dc:date>2024-09-02T19:41:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to read in an XML file with namespaces</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942240#M369500</link>
      <description>&lt;P&gt;Not all Xpath syntaxes are supported. The &lt;A href="https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/engxml/p0f31xwrf0ti5fn11za2wn3929c8.htm" target="_self"&gt;documentation&lt;/A&gt; states:&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;SECTION id="p0gg29htfejeimn1e3mkgj08frq4" class="xisDoc-caution"&gt;
&lt;P class="xisDoc-paraSimple"&gt;&lt;CODE class=" language-sas"&gt;CAUTION &lt;/CODE&gt;&lt;/P&gt;
&lt;P class="xisDoc-paraSimple"&gt;&lt;CODE class=" language-sas"&gt;These forms are the only XPath forms that the XML engine supports. &lt;/CODE&gt;&lt;/P&gt;
&lt;P class="xisDoc-paraSimple"&gt;&lt;CODE class=" language-sas"&gt;If you use any other valid W3C form, the results will be unpredictable.&lt;/CODE&gt;&lt;/P&gt;
&lt;P class="xisDoc-paraSimple"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="xisDoc-paraSimple"&gt;Unsure what's wrong with your code as I don't have time to check, but this works:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_;
  file '~/kk.xml';
  put '&amp;lt;team&amp;gt;';
  put '&amp;lt;name type="first"&amp;gt;';
  put 'Albert';
  put '&amp;lt;/name&amp;gt;';
  put '&amp;lt;name type="last"&amp;gt;';
  put 'Einstein';
  put '&amp;lt;/name&amp;gt;';
  put '&amp;lt;/team&amp;gt;';
  
  file '~/kkmap.xml';
  put '&amp;lt;?xml version="1.0" ?&amp;gt;';
  put '&amp;lt;SXLEMAP version="2.1"&amp;gt;';
  put '&amp;lt;TABLE name="TEAM"&amp;gt;';
  put '&amp;lt;TABLE-PATH syntax="XPath"&amp;gt;';
  put '/team';
  put '&amp;lt;/TABLE-PATH&amp;gt;';
  put '&amp;lt;COLUMN name="VAR1"&amp;gt;';
  put '&amp;lt;PATH&amp;gt;/team/name[@type="first"]&amp;lt;/PATH&amp;gt;';  * &amp;lt;=== namespace ;
  put '&amp;lt;TYPE&amp;gt;character&amp;lt;/TYPE&amp;gt;';
  put '&amp;lt;DATATYPE&amp;gt;STRING&amp;lt;/DATATYPE&amp;gt;';
  put '&amp;lt;LENGTH&amp;gt;30&amp;lt;/LENGTH&amp;gt;';
  put '&amp;lt;/COLUMN&amp;gt;';
  put '&amp;lt;/TABLE&amp;gt;';
  put '&amp;lt;/SXLEMAP&amp;gt;';
run;
filename XML "~/kk.xml";
filename MAP "~/kkmap.xml";
libname XML xmlv2 xmlmap=MAP;
proc print data=XML.TEAM;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;TABLE class="table" style="border-spacing: 0;" aria-label="Data Set XML.TEAM"&gt;
&lt;THEAD&gt;
&lt;TR&gt;
&lt;TH class="r header" scope="col"&gt;Obs&lt;/TH&gt;
&lt;TH class="header" scope="col"&gt;&amp;nbsp;VAR1&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH class="r rowheader" scope="row"&gt;1&lt;/TH&gt;
&lt;TD class="data"&gt;Albert&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P class="xisDoc-paraSimple"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="xisDoc-paraSimple"&gt;Expand from this working code to yours and see where things break.&lt;/P&gt;
&lt;P class="xisDoc-paraSimple"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="xisDoc-paraSimple"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="xisDoc-paraSimple"&gt;&amp;nbsp;&lt;/P&gt;
&lt;/SECTION&gt;</description>
      <pubDate>Tue, 03 Sep 2024 04:21:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942240#M369500</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2024-09-03T04:21:15Z</dc:date>
    </item>
    <item>
      <title>Re: How to read in an XML file with namespaces</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942358#M369521</link>
      <description>&lt;P&gt;I don't think there is anything wrong with my code, just did some more testing and also found a post on stack overflow talking about the exact same issue, so here is what I found out: the Xpath attribute selector only works on the "end" node in the path. For example, this works as Cell is the "end" or deepest node in the path:&lt;/P&gt;&lt;PRE&gt;*** XML ***;
&amp;lt;Workbook&amp;gt;&amp;lt;Worksheet&amp;gt;&amp;lt;Table&amp;gt;&amp;lt;Row&amp;gt;
    &amp;lt;Cell Index="2"&amp;gt;John Smith&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;&amp;lt;/Table&amp;gt;&amp;lt;/Worksheet&amp;gt;&amp;lt;/Workbook&amp;gt;

*** XML map ***;
...
&amp;lt;PATH syntax="XPath"&amp;gt;/Workbook/Worksheet/Table/Row/Cell[@Index="2"]&amp;lt;/PATH&amp;gt;
...&lt;/PRE&gt;&lt;P&gt;but if "John Smith" is contained in another level of node further down, it doesn't work:&lt;/P&gt;&lt;PRE&gt;*** XML ***;
&amp;lt;Workbook&amp;gt;&amp;lt;Worksheet&amp;gt;&amp;lt;Table&amp;gt;&amp;lt;Row&amp;gt;
    &amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;John Smith&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;&amp;lt;/Table&amp;gt;&amp;lt;/Worksheet&amp;gt;&amp;lt;/Workbook&amp;gt;

*** XML map ***;
...
&amp;lt;PATH syntax="XPath"&amp;gt;/Workbook/Worksheet/Table/Row/Cell[@Index="2"]/Data&amp;lt;/PATH&amp;gt;
...&lt;/PRE&gt;&lt;P&gt;It looks to me the Xpath attribute selector in SAS XML Map is NOT properly implemented. Is there any workaround? If not, how can I raise a bug report or enhancement request?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 03 Sep 2024 17:36:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942358#M369521</guid>
      <dc:creator>kingcu</dc:creator>
      <dc:date>2024-09-03T17:36:26Z</dc:date>
    </item>
    <item>
      <title>Re: How to read in an XML file with namespaces</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942374#M369522</link>
      <description>&lt;P&gt;I don't have any trouble getting XMLV2 to read your example file.&lt;/P&gt;
&lt;LI-SPOILER&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;filename xml temp;
options parmcards=xml;
parmcards4;
&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;Workbook&amp;gt;
&amp;lt;Worksheet&amp;gt;
&amp;lt;Table&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;Obs&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Name&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;Sex&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;Age&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;Height&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;Weight&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;1&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Alfred&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;14&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;69.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;112.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;2&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Alice&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;13&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;56.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;84.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Barbara&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;13&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;65.3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;98.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;4&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Carol&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;14&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;62.8&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;102.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Henry&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;14&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;63.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;102.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;6&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;James&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;57.3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;83.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;7&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Jane&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;59.8&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;84.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;8&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Janet&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;15&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;62.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;112.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;9&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Jeffrey&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;13&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;62.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;84.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;10&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;John&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;59.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;99.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;11&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Joyce&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;11&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;51.3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;50.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Judy&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;14&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;64.3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;90.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;13&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Louise&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;56.3&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;77.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;14&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Mary&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;F&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;15&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;66.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;112.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;15&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Philip&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;16&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;72.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;150.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;16&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Robert&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;12&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;64.8&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;128.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;17&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Ronald&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;15&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;67.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;133.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;18&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;Thomas&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;11&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;57.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;85.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;Row&amp;gt;
&amp;lt;Cell Index="1"&amp;gt;&amp;lt;Data&amp;gt;19&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="2"&amp;gt;&amp;lt;Data&amp;gt;William&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="3"&amp;gt;&amp;lt;Data&amp;gt;M&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="4"&amp;gt;&amp;lt;Data&amp;gt;15&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="5"&amp;gt;&amp;lt;Data&amp;gt;66.5&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;Cell Index="6"&amp;gt;&amp;lt;Data&amp;gt;112.0&amp;lt;/Data&amp;gt;&amp;lt;/Cell&amp;gt;
&amp;lt;/Row&amp;gt;
&amp;lt;/Table&amp;gt;
&amp;lt;/Worksheet&amp;gt;
&amp;lt;/Workbook&amp;gt;
;;;;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI-SPOILER&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;filename xmlmap temp;
libname xml xmlv2 xmlmap=xmlmap automap=reuse;

proc print data=xml.cell;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Tom_0-1725389894787.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/99928i546EB0FE7E4CFE97/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Tom_0-1725389894787.png" alt="Tom_0-1725389894787.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 03 Sep 2024 18:58:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942374#M369522</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-09-03T18:58:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to read in an XML file with namespaces</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942376#M369524</link>
      <description>&lt;P&gt;That seems easy enough to read.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;filename xml temp;
ods Tagsets.ExcelXP file=xml ;
title 'Listing of Class data';
proc print data=sashelp.class(obs=3);
run;
title;
ods Tagsets.ExcelXP close;

filename xmlmap temp;
libname xml xmlv2 xmlmap=xmlmap automap=reuse;
proc sql;
  create table cell_values as
  select * from xml.data natural join xml.cell natural join xml.row
 ;
quit;
proc print;
  var table_ordinal row_ordinal cell_index data_type data ;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Result&lt;/P&gt;
&lt;PRE&gt;        Table_      Row_     Cell_    Data_
Obs    ORDINAL    ORDINAL    Index     Type     Data

  1       1          1         1      String    Obs
  2       1          1         2      String    Name
  3       1          1         3      String    Sex
  4       1          1         4      String    Age
  5       1          1         5      String    Height
  6       1          1         6      String    Weight
  7       1          2         1      Number    1
  8       1          2         2      String    Alfred
  9       1          2         3      String    M
 10       1          2         4      Number    14
 11       1          2         5      Number    69.0
 12       1          2         6      Number    112.5
 13       1          3         1      Number    2
 14       1          3         2      String    Alice
 15       1          3         3      String    F
 16       1          3         4      Number    13
 17       1          3         5      Number    56.5
 18       1          3         6      Number    84.0
 19       1          4         1      Number    3
 20       1          4         2      String    Barbara
 21       1          4         3      String    F
 22       1          4         4      Number    13
 23       1          4         5      Number    65.3
 24       1          4         6      Number    98.0&lt;/PRE&gt;</description>
      <pubDate>Tue, 03 Sep 2024 19:31:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942376#M369524</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2024-09-03T19:31:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to read in an XML file with namespaces</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942415#M369534</link>
      <description>&lt;P&gt;Thanks for the workaround. The automap does the trick, although I have to join/filter a few datasets to get the portion of the xml I need, it does work around the issue.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Sep 2024 02:03:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-read-in-an-XML-file-with-namespaces/m-p/942415#M369534</guid>
      <dc:creator>kingcu</dc:creator>
      <dc:date>2024-09-04T02:03:40Z</dc:date>
    </item>
  </channel>
</rss>

