第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有連字符名稱的SimpleXML讀取節(jié)點

帶有連字符名稱的SimpleXML讀取節(jié)點

PHP
12345678_0001 2019-07-13 15:55:45
我有以下XML:<?xml version="1.0" encoding="UTF-8"?><gnm:Workbook xmlns:gnm="http://www.gnumeric.org/v10.dtd" xmlns:xsi="  a-instance" xsi:schemaLocation="http://www.gnumeric.org/v9.xsd">   <office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc   ="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:ooo="http://openoffice.org/2004/offi   ce" office:version="1.1">     <office:meta>       <dc:creator>Mark Baker</dc:creator>       <dc:date>2010-09-01T22:49:33Z</dc:date>       <meta:creation-date>2010-09-01T22:48:39Z</meta:creation-date>       <meta:editing-cycles>4</meta:editing-cycles>       <meta:editing-duration>PT00H04M20S</meta:editing-duration>       <meta:generator>OpenOffice.org/3.1$Win32 OpenOffice.org_project/310m11$Build-9399</meta:generator>     </office:meta>   </office:document-meta></gnm:Workbook>我試著閱讀office:Document-meta節(jié)點來提取它下面的各種元素(dc:creator,meta:create-date,等等)以下代碼:$xml = simplexml_load_string($gFileData);$namespacesMeta = $xml->getNamespaces(true); $officeXML = $xml->children($namespacesMeta['office']);var_dump($officeXML);echo '<hr />';給我:object(SimpleXMLElement)[91]   public 'document-meta' =>      object(SimpleXMLElement)[93]       public '@attributes' =>          array          'version' => string '1.1' (length=3)       public 'meta' =>          object(SimpleXMLElement)[94]但是,如果我嘗試使用以下方法讀取文檔-meta元素:$xml = simplexml_load_string($gFileData);$namespacesMeta = $xml->getNamespaces(true);$officeXML = $xml->children($namespacesMeta['office']); $docMeta = $officeXML->document-meta;var_dump($docMeta);echo '<hr />';我得到Notice: Use of undefined constant meta - assumed 'meta' in /usr/local/apache/htdocsNewDev/PHPExcel/Classes/PHPExcel/Reader/Gnumeric .php on line 273int 0我假設(shè)SimpleXML試圖從$office eXML中提取一個不存在的節(jié)點“文檔”,然后減去(不存在)常量“meta”的值,從而導(dǎo)致強制整數(shù)0結(jié)果而不是文檔元節(jié)點。是否有一種使用SimpleXML解決此問題的方法,或者我將被迫使用XMLReader重寫?任何幫助都很感激。
查看完整描述

2 回答

?
繁花不似錦

TA貢獻1851條經(jīng)驗 獲得超4個贊

你的假設(shè)是正確的。使用

$officeXML->{'document-meta'}

讓它發(fā)揮作用。

請注意,上述內(nèi)容適用于元素節(jié)點。屬性節(jié)點(在轉(zhuǎn)儲SimpleXmlElement時在@Attribute屬性中)不需要在連字符時訪問任何特殊語法。它們可以通過數(shù)組符號定期訪問。

$xml?=?<<<?XML<root>
????<hyphenated-element?hyphenated-attribute="bar">foo</hyphenated-element></root>XML;
????$root?=?new?SimpleXMLElement($xml);echo?$root->{'hyphenated-element'};
?????//?prints?"foo"echo?$root->{'hyphenated-element'}['hyphenated-attribute'];?//?prints?"bar"


查看完整回答
反對 回復(fù) 2019-07-13
?
弒天下

TA貢獻1818條經(jīng)驗 獲得超8個贊

注意,連字符元素名稱用引號。如果你說{document-meta},它將無法工作,并將返回整個XML文檔。一定是{'document-meta'}..這讓我今天早上絆倒了大約兩個小時。

查看完整回答
反對 回復(fù) 2019-07-13
  • 2 回答
  • 0 關(guān)注
  • 565 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號