2014-04-29 45 views
1

我正在尝试使用我的PHP代码读取带' - '标签的XML文件。我的XML文件是这样的: 当我没有连字符和改变我的XML通过headelement读文件,它是可读的,但是当连字符是存在的,它不是可读的,给我的错误:(!)无法使用' - '使用PHP中的SimpleXMLElement读取XML标签

尖叫:错误抑制忽略 解析错误(!):语法错误,意想不到的 '[' 在MYFILE

<root> 
    <head-element> 
    ... 
    ... 
    ... 
    </head-element> 
    <head-element> 
    ... 
    ... 
    ... 
    </head-element> 
</root> 

我的读取XML文件的PHP代码:

try 
{ 
    /*** a new dom object ***/ 
    $xml = new domDocument;   
    $xml->formatOutput = true; 
    $xml->preserveWhiteSpace = false; 

    $xml = simplexml_load_file('root.xml'); 
    $sxe = new SimpleXMLElement($xml->asXML()); 

    $nodes = $sxe->head-element[0]; 
    $user = $nodes->addchild("new-element"); 
    $user->addChild("uuid", "a1234"); 
    echo $sxe->asXML(); 
} 
catch(Exception $e) 
{ 
    echo $e->getMessage(); 
} 

谁能帮我这个?

回答

2

可以尝试访问您的XML节点使用:

$xml = new domDocument;   
$xml->formatOutput = true; 
$xml->preserveWhiteSpace = false; 

$xml = simplexml_load_file('root.xml'); 
$sxe = new SimpleXMLElement($xml->asXML()); 

//the way you can read your custom nodes 
$nodes = $sxe->{'head-element'}[0]; 

希望它能帮助。