2013-02-28 120 views
0

我有一個變量PHP錯誤simplexml_load_string功能

<root> 
    <id></id> 
    <title>Maarch Capture Connector</title> 
    <width>400</width> 
    <height>250</height> 
    <center>true</center> 
    <fields> 
    <node> 
     <type>comboBox</type> 
     <id>ingoing</id> 
     <label>Courrier</label> 
     <autocomplete>false</autocomplete> 
     <values> 
      <node> 
       <id>Y</id> 
       <label>Arrivée</label> 
      </node> 
      <node> 
       <id>N</id> 
       <label>Départ</label> 
      </node> 
     </values> 
     <default_value>Y</default_value> 
     <show_id>false</show_id> 
     <mandatory>true</mandatory> 
    </node> 
    <node> 
     <type>comboBox</type> 
     <id>priority</id> 
     <label>Priorité</label> 
     <autocomplete>false</autocomplete> 
     <values> 
      <node> 
       <id>0</id> 
       <label>Priorité trés haute</label> 
      </node> 
      <node> 
       <id>1</id> 
       <label>Priorité haute</label> 
      </node> 
      <node> 
       <id>2</id> 
       <label>Priorité normale</label> 
      </node> 
      <node> 
       <id>3</id> 
       <label>Priorité basse</label> 
      </node> 
     </values> 
     <default_value>2</default_value> 
     <show_id>false</show_id> 
     <mandatory>true</mandatory> 
    </node> 
    <node> 
     <type>comboBox</type> 
     <id>services</id> 
     <label>Service</label> 
     <autocomplete>false</autocomplete> 
     <values> 
      <node> 
       <id>9</id> 
       <label>Compay SEGUNDO</label> 
      </node> 
      <node> 
       <id>10</id> 
       <label>Contract 1 for Eric SPRITZ : Life insurance</label> 
      </node> 
      <node> 
       <id>13</id> 
       <label>Contract 1 for Thomas BECK : Life insurance</label> 
      </node> 
      <node> 
       <id>11</id> 
       <label>Contract 2 for Eric SPRITZ : Home insurance</label> 
      </node> 
      <node> 
       <id>14</id> 
       <label>Contract 2 for Thomas BECK : Home insurance</label> 
      </node> 
      <node> 
       <id>12</id> 
       <label>Contract 3 for Eric SPRITZ : Car insurance</label> 
      </node> 
      <node> 
       <id>15</id> 
       <label>Contract 3 for Thomas BECK : Car insurance</label> 
      </node> 
      <node> 
       <id>8</id> 
       <label>Edith PIAF</label> 
      </node> 
      <node> 
       <id>1</id> 
       <label>Eric SPRITZ</label> 
      </node> 
      <node> 
       <id>5</id> 
       <label>Joao GILBERTO</label> 
      </node> 
      <node> 
       <id>6</id> 
       <label>Luciano PAVAROTTI</label> 
      </node> 
      <node> 
       <id>7</id> 
       <label>Maria BETHANIA</label> 
      </node> 
      <node> 
       <id>16</id> 
       <label>MARTIN HR file</label> 
      </node> 
      <node> 
       <id>17</id> 
       <label>SMITH HR file</label> 
      </node> 
      <node> 
       <id>3</id> 
       <label>Teresa CRISTINA</label> 
      </node> 
      <node> 
       <id>2</id> 
       <label>Thomas BECK</label> 
      </node> 
      <node> 
       <id>4</id> 
       <label>Tom JOBIM</label> 
      </node> 
     </values> 
     <show_id>false</show_id> 
     <mandatory>true</mandatory> 
    </node> 
</fields> 
</root> 

當我試着使用simplexml_load_string功能

$xmlForm = simplexml_load_string($string); 

我得到這個錯誤

實體閱讀以下字符串:第1行:解析器錯誤:預計開始標記,'<'找不到

我不明白什麼是成功。

+0

嘗試添加一個'<?xml version ='1.0'?>'並告訴我們如何初始化您的字符串。 – MatRt 2013-02-28 00:14:39

+0

嘗試添加「<?xml」PI標頭。在文件開始處尋找隱形字符;使用hexeditor。 – mario 2013-02-28 00:15:17

+0

我將它粘貼到xmlvalidation.com中,它現在報告了錯誤,所以可能會有一些額外的字符。 – Barmar 2013-02-28 00:17:03

回答

0

嘗試用

更換空標籤<id></id>雖然技術上是正確的,它可能會被絆倒了解析器。

除此之外,它看起來像格式良好的XML給我。

+0

我不認爲這是自我封閉標籤問題在這一點上。看看錯誤信息... – MatRt 2013-02-28 00:22:41

0

執行這段代碼:

<?php 

$str =<<<XML_CONTENT 
<?xml version='1.0'?> 
<root> 
    <id></id> 
    <title>Maarch Capture Connector</title> 
    <width>400</width> 
    <height>250</height> 
    <center>true</center> 
    <fields> 
    <node> 
     <type>comboBox</type> 
     <id>ingoing</id> 
     <label>Courrier</label> 
     <autocomplete>false</autocomplete> 
     <values> 
      <node> 
       <id>Y</id> 
       <label>Arrivée</label> 
      </node> 
      <node> 
       <id>N</id> 
       <label>Départ</label> 
      </node> 
     </values> 
     <default_value>Y</default_value> 
     <show_id>false</show_id> 
     <mandatory>true</mandatory> 
    </node> 
    <node> 
     <type>comboBox</type> 
     <id>priority</id> 
     <label>Priorité</label> 
     <autocomplete>false</autocomplete> 
     <values> 
      <node> 
       <id>0</id> 
       <label>Priorité trés haute</label> 
      </node> 
      <node> 
       <id>1</id> 
       <label>Priorité haute</label> 
      </node> 
      <node> 
       <id>2</id> 
       <label>Priorité normale</label> 
      </node> 
      <node> 
       <id>3</id> 
       <label>Priorité basse</label> 
      </node> 
     </values> 
     <default_value>2</default_value> 
     <show_id>false</show_id> 
     <mandatory>true</mandatory> 
    </node> 
    <node> 
     <type>comboBox</type> 
     <id>services</id> 
     <label>Service</label> 
     <autocomplete>false</autocomplete> 
     <values> 
      <node> 
       <id>9</id> 
       <label>Compay SEGUNDO</label> 
      </node> 
      <node> 
       <id>10</id> 
       <label>Contract 1 for Eric SPRITZ : Life insurance</label> 
      </node> 
      <node> 
       <id>13</id> 
       <label>Contract 1 for Thomas BECK : Life insurance</label> 
      </node> 
      <node> 
       <id>11</id> 
       <label>Contract 2 for Eric SPRITZ : Home insurance</label> 
      </node> 
      <node> 
       <id>14</id> 
       <label>Contract 2 for Thomas BECK : Home insurance</label> 
      </node> 
      <node> 
       <id>12</id> 
       <label>Contract 3 for Eric SPRITZ : Car insurance</label> 
      </node> 
      <node> 
       <id>15</id> 
       <label>Contract 3 for Thomas BECK : Car insurance</label> 
      </node> 
      <node> 
       <id>8</id> 
       <label>Edith PIAF</label> 
      </node> 
      <node> 
       <id>1</id> 
       <label>Eric SPRITZ</label> 
      </node> 
      <node> 
       <id>5</id> 
       <label>Joao GILBERTO</label> 
      </node> 
      <node> 
       <id>6</id> 
       <label>Luciano PAVAROTTI</label> 
      </node> 
      <node> 
       <id>7</id> 
       <label>Maria BETHANIA</label> 
      </node> 
      <node> 
       <id>16</id> 
       <label>MARTIN HR file</label> 
      </node> 
      <node> 
       <id>17</id> 
       <label>SMITH HR file</label> 
      </node> 
      <node> 
       <id>3</id> 
       <label>Teresa CRISTINA</label> 
      </node> 
      <node> 
       <id>2</id> 
       <label>Thomas BECK</label> 
      </node> 
      <node> 
       <id>4</id> 
       <label>Tom JOBIM</label> 
      </node> 
     </values> 
     <show_id>false</show_id> 
     <mandatory>true</mandatory> 
    </node> 
</fields> 
</root> 
XML_CONTENT; 

$xmlForm = simplexml_load_string($str); 

print_r($xmlForm); 

echo "Everything is fine !"; 

?> 

在PHP在線機器一樣:PHP online

做工精細,所以你可以與你的字符串初始化一個問題

(壞無形caraters ......?)

注意:添加XML標題標記是盡力而爲的,不應該被遺忘

+0

我忘記提及我正在嘗試安裝[Maarch Capture Connector](http://wiki.maarch.org/Socle_Technique_/_Outils_annexes_/_Maarch_Capture_Connector) – 2013-02-28 11:46:21

+0

與問題的關係是什麼..?你如何初始化遊覽XML字符串? – MatRt 2013-02-28 21:19:57

0

我已經解決了我的問題。我的XML字符串很好......問題出在我修改的Maarch Enterprise的其他文件中。對不起,遲到的答覆和感謝幫助:)