2014-02-20 6 views
0

У меня есть некоторая проблема с получением значения из xml.PHP - получить значения из xml

XML выглядеть

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="http://crd.gov.pl/xml/schematy/UPO/2008/05/09/UPO.xsl"?> 
<pos:Document xmlns:pos="SOMEURL" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <pos:DescribeDoc/> 
    <pos:UPD> 
     <pos:IdDoc>procotol-UPD2198338</pos:IdDoc> 
     <pos:IdCases>221872</pos:IdCases> 
     <pos:additionalInfo TypeInfo="Source">Some string</pos:additionalInfo> 
    </pos:UPD> 
... 

Я вообще стараюсь, чтобы добраться до Pos: IdCases. Стараюсь этот код:

$domContent = new SimpleXMLElement(((string) $content), LIBXML_COMPACT); 
$test = $domContent->xpath('/pos:Document/pos:UPD/*'); 
foreach($test as $node){ 
    print_r($node) 
} 

я получаю какой-то объект, такой как

SimpleXMLElement Object 
(
    [0] => procotol-UPD2198338 
) 

SimpleXMLElement Object 
(
    [0] => 221872 
) 

SimpleXMLElement Object 
(
    [@attributes] => Array 
     (
      [TypeInfo] => Source 
     ) 

    [0] => Some string 
) 

Но я должен добраться до пос: IdCases. Я не могу использовать индекс [1], потому что порядок может меняться.

Мой вопрос: Как я могу получить значение в узле: pos: IdCases Я не могу добавить id или другую информацию на узел, потому что этот xml был подписан (XADES).

Можете ли вы дать мне совет? Спасибо за помощь

ответ

2

Просто измените XPath, чтобы соответствовать <Pos:IdCases/> узел:

$test = $domContent->xpath('/pos:Document/pos:UPD/pos:IdCases'); 
+0

.... это было совершенно очевидно ... Спасибо –

Смежные вопросы