dsfhe34889 2014-02-20 08:47
浏览 34
已采纳

PHP - 从xml获取值

I have a some problem with get value from xml.

XML look like

<?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>
...

I general try to get to pos:IdCases. I try this code:

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

I get a some object such as

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

SimpleXMLElement Object
(
    [0] => 221872
)

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

    [0] => Some string
)

But I must get to pos:IdCases. I can't use index [1] because order can change.

My question is: How can I get to value in node: pos:IdCases I can't add id or another info to node because this xml was signed (XADES).

Can you give me some advice? Thanks for help

  • 写回答

1条回答

  • duanjizhan9353 2014-02-20 08:51
    关注

    Simply change the XPath to match the <Pos:IdCases/> node:

    $test = $domContent->xpath('/pos:Document/pos:UPD/pos:IdCases');
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流