Xpath Problem With Plex:s Xml-parser

I’m trying to parse a XML with XPath and get some strange results with Plex. It works in XPath Checker plugin for Firefox and on this site, http://www.mizar.dk/XPath/Default.aspx but not with Plex.



<br />
#When using isHTML = True no category has subcategories<br />
subCategories = XML.ElementFromURL('http://www.expressen.tv/2.2729?output=xmlMenuOutput', isHTML=False, cacheTime=0) <br />
<br />
#Does not work, but should return subcategories for category Sport, id = 2.2731<br />
subCat1 = subCategories.xpath('/root/category[id=2.2731]/subcategories/subcategory') <br />
<br />
#This one works, and returns subcategories for category Nyheter (News), id = 2.2729<br />
subCat2 = subCategories.xpath('/root/category[id=2.2729]/subcategories/subcategory') <br />




If i look at the xml both xpath-expressions should get a result but for some reason the subCat1 is empty.

So I'm wondering if there are anything wrong with the xml-parser that Plex uses and if there are any workaround for it?

Xml for category Nyheter (News) that works

<br />
                <category date='2009-11-08'><br />
                    <id>2.2729</id><br />
                    <title><![CDATA[Nyheter]]></title><br />
<br />
                    <br />
                            <commercial>1</commercial><br />
                        <br />
                    <style><![CDATA[0x554433]]></style><br />
                    <weburl><![CDATA[expressen.tv/nyheter]]></weburl><br />
                    <xmlurl><![CDATA[expressen.tv/nyheter?output=xmlFirstScreenOutput]]></xmlurl><br />
                  <subcategories><br />
                    <br />
                        <subcategory><br />
                            <id>2.2739</id><br />
<br />
                            <title><![CDATA[Inrikes]]></title><br />
                            <br />
                            <commercial>1</commercial><br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
                            <weburl><![CDATA[expressen.tv/nyheter/inrikes]]></weburl><br />
                            <xmlurl><![CDATA[expressen.tv/nyheter/inrikes?output=xmlFirstScreenOutput]]></xmlurl><br />
                        </subcategory><br />
                       <br />
                        <subcategory><br />
<br />
                            <id>2.2740</id><br />
                            <title><![CDATA[Utrikes]]></title><br />
                            <br />
                            <commercial>1</commercial><br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
                            <weburl><![CDATA[expressen.tv/nyheter/utrikes]]></weburl><br />
                            <xmlurl><![CDATA[expressen.tv/nyheter/utrikes?output=xmlFirstScreenOutput]]></xmlurl><br />
                        </subcategory><br />
<br />
                       <br />
                        <subcategory><br />
                            <id>2.3226</id><br />
                            <title><![CDATA[Politik]]></title><br />
                            <br />
                            <commercial>1</commercial><br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
                            <weburl><![CDATA[expressen.tv/nyheter/politik]]></weburl><br />
                            <xmlurl><![CDATA[expressen.tv/nyheter/politik?output=xmlFirstScreenOutput]]></xmlurl><br />
<br />
                        </subcategory><br />
                       <br />
                        <subcategory><br />
                            <id>2.2987</id><br />
                            <title><![CDATA[Förlovningen]]></title><br />
                            <br />
                            <commercial>1</commercial><br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
                            <weburl><![CDATA[expressen.tv/nyheter/forlovningen]]></weburl><br />
<br />
                            <xmlurl><![CDATA[expressen.tv/nyheter/forlovningen?output=xmlFirstScreenOutput]]></xmlurl><br />
                        </subcategory><br />
                       <br />
                        <subcategory><br />
                            <id>2.3063</id><br />
                            <title><![CDATA[Unicef]]></title><br />
                            <br />
                            <commercial>1</commercial><br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
<br />
                            <weburl><![CDATA[expressen.tv/nyheter/unicef]]></weburl><br />
                            <xmlurl><![CDATA[expressen.tv/nyheter/unicef?output=xmlFirstScreenOutput]]></xmlurl><br />
                        </subcategory><br />
                       <br />
                        <subcategory><br />
                            <id>2.2992</id><br />
                            <title><![CDATA[Opinions-tv]]></title><br />
                            <br />
                            <commercial>1</commercial><br />
<br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
                            <weburl><![CDATA[expressen.tv/nyheter/opinions-tv]]></weburl><br />
                            <xmlurl><![CDATA[expressen.tv/nyheter/opinions-tv?output=xmlFirstScreenOutput]]></xmlurl><br />
                        </subcategory><br />
                       <br />
                        <subcategory><br />
                            <id>2.3187</id><br />
                            <title><![CDATA[Cecilia Hagen]]></title><br />
<br />
                            <br />
                            <commercial>1</commercial><br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
                            <weburl><![CDATA[expressen.tv/nyheter/ceciliahagen]]></weburl><br />
                            <xmlurl><![CDATA[expressen.tv/nyheter/ceciliahagen?output=xmlFirstScreenOutput]]></xmlurl><br />
                        </subcategory><br />
                       <br />
                      </subcategories><br />
                 </category><br />
<br />




Xml for category sport that fails

<br />
                <category date='2009-11-08'><br />
<br />
                    <id>2.2731</id><br />
                    <title><![CDATA[Sport]]></title><br />
                    <br />
                            <commercial>1</commercial><br />
                        <br />
                    <style><![CDATA[0x554433]]></style><br />
                    <weburl><![CDATA[expressen.tv/sport]]></weburl><br />
                    <xmlurl><![CDATA[expressen.tv/sport?output=xmlFirstScreenOutput]]></xmlurl><br />
                  <subcategories><br />
<br />
                    <br />
                        <subcategory><br />
                            <id>2.3207</id><br />
                            <title><![CDATA[La Liga]]></title><br />
                            <br />
                            <commercial>1</commercial><br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
                            <weburl><![CDATA[expressen.tv/sport/laliga]]></weburl><br />
                            <xmlurl><![CDATA[expressen.tv/sport/laliga?output=xmlFirstScreenOutput]]></xmlurl><br />
<br />
                        </subcategory><br />
                       <br />
                        <subcategory><br />
                            <id>2.3050</id><br />
                            <title><![CDATA[Allsvenskan]]></title><br />
                            <br />
                            <commercial>1</commercial><br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
                            <weburl><![CDATA[expressen.tv/sport/allsvenskan]]></weburl><br />
<br />
                            <xmlurl><![CDATA[expressen.tv/sport/allsvenskan?output=xmlFirstScreenOutput]]></xmlurl><br />
                        </subcategory><br />
                       <br />
                        <subcategory><br />
                            <id>2.3230</id><br />
                            <title><![CDATA[Elitserien]]></title><br />
                            <br />
                            <commercial>1</commercial><br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
<br />
                            <weburl><![CDATA[expressen.tv/sport/elitserien]]></weburl><br />
                            <xmlurl><![CDATA[expressen.tv/sport/elitserien?output=xmlFirstScreenOutput]]></xmlurl><br />
                        </subcategory><br />
                       <br />
                        <subcategory><br />
                            <id>2.3013</id><br />
                            <title><![CDATA[Sanktan]]></title><br />
                            <br />
                            <commercial>1</commercial><br />
<br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
                            <weburl><![CDATA[expressen.tv/sport/sanktan]]></weburl><br />
                            <xmlurl><![CDATA[expressen.tv/sport/sanktan?output=xmlFirstScreenOutput]]></xmlurl><br />
                        </subcategory><br />
                       <br />
                        <subcategory><br />
                            <id>2.3103</id><br />
                            <title><![CDATA[Trav]]></title><br />
<br />
                            <br />
                            <commercial>1</commercial><br />
                                <br />
                            <style><![CDATA[0x554433]]></style><br />
                            <weburl><![CDATA[expressen.tv/sport/trav]]></weburl><br />
                            <xmlurl><![CDATA[expressen.tv/sport/trav?output=xmlFirstScreenOutput]]></xmlurl><br />
                        </subcategory><br />
                       <br />
                      </subcategories><br />
                 </category><br />
<br />


I found a solution for it.



subcategories = subCategories.xpath('/root/category[id=\'' + id + '\']/subcategories/subcategory')

Glad you were able to figure it out, thanks for posting the solution you found!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.