XML a std namespace v PHP
7 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Potřebuju dostat info z xml. xlm má prefixy a uvnitř je ještě předefinovaný std namespace. Kdyby tam nebyl, tak dostanu hodnoty několika std způsoby. Jenže on tam je a nedaří se mi z toho dostat vůbec nic. Rady z googlu nepomohly. Nemáte někdo řešení jiné, jak před dolováním dat vyhodit tenhle std namespace?
-
Rady od strýčka Googla pomůžou vždy. Tedy vždy když se zeptáš správně. Hned první rada: http://rssphp.net/
-
Jsem po obědě, tak mi to možná nedochází, ale jak např. z tohoto: \<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"\> \<soap:Body\> \<GetLookupResponse xmlns="http://tempuri.org/"\> \<GetLookupResult\> \<Lookup\> \<Id\>int\</Id\> \<Code\>string\</Code\> \<Text\>string\</Text\> \</Lookup\> \<Lookup\> \<Id\>int\</Id\> \<Code\>string\</Code\> \<Text\>string\</Text\> \</Lookup\> \</GetLookupResult\> \</GetLookupResponse\> \</soap:Body\> \</soap:Envelope\> dostanu např. hodnotu (xpath) //Lokup/Id? Pokud by tam nebylo to "xmlns="http://tempuri.org/", tak je vše ok, ale jak to tam je...
-
Aha ... takže jsem původní zadání asi nepochopil pořádně já... ... ale i tak by to mělo fungovat. Parsování přes DOM by si s tím teoreticky poradit mělo (a ten odkazovaný parser s DOMem pracuje).
-
dom to zparsuje, ale to rekurzivní strkání do pole, nebo kam v tom rss... do toho se mi nechce. Nechám to tak, že vyhodím namespace a je to. Jiný problém ze stejného soudku: DOMXpath mi vrátí NodeList, podle xpath výrazu. V podstatě kousky xml. Ale s těma už se nedá pracovat jako s xml. Udělá z toho seznam name - value, kde ten kousek xml už ignoruje a vezme z toho jenom texty. Neřešil jste někdo? Konkrétně: <ValidationError> <ErrorCode>Invalid cosi</ErrorCode> <ObjectName>jedna</ObjectName> <FieldName>xxx</FieldName> <Description>desc1</Description> </ValidationError> <ValidationError> <ErrorCode>MissingRequiredField</ErrorCode> <ObjectName>dva</ObjectName> <FieldName>yyy</FieldName> <Description>Neni hodnota</Description> </ValidationError> skrz DOMXpath vyberu ValidationError a pak bych ze seznamu (dvou) menších xml rád vybral ty ErrorCode, ObjectName.... ?
-
Tak jestli to nějak pomůže, tak můžeš zkusit něco vyhaluzit z tohohle: http://manual.wz.cz/download/xml_parser.phps Kdysi jsem to sesmolil a dodnes mě překvapuje co všechno to umí ;)
-
Hm, asi to tak nějak budu muset udělat. Dík za tipy.