您好我无法正确编码从下面的XML响应中提取这一个字符串(hostPIN)。我一直在搜索和搜索,无法得到任何工作。任何人都可以指导我如何使用PHP提取数据?谢谢!
我只发布了我需要获取的数据的路径,因为xml数据非常大。
<serv:message>
<serv:body>
<serv:bodyContent xsi:type="use:getUserResponse">
<use:personalMeetingRoom>
<use:hostPIN>1234</use:hostPIN>
如何提取1234?名称空间让我感到困惑,我已经发布了帖子,但找不到可以使用的名称。
感谢任何人提供的任何帮助!
答案 0 :(得分:1)
感谢@ fusion3k经过一些调整后,我得到了
$dom = new DOMDocument();
$dom->loadXML( $data, LIBXML_NOBLANKS );
$nsURI = "http://www.webex.com/schemas/2002/06/service/user";
foreach( $dom->getElementsByTagNameNS ( $nsURI , 'hostPIN' ) as $node )
{
echo $node->nodeValue.PHP_EOL;
}
答案 1 :(得分:0)
这是DOMDocument
的基本示例:
$dom = new DOMDocument();
$dom->loadXML( $xmlString, LIBXML_NOBLANKS );
$nsURI = $dom->lookupNameSpaceUri( 'use' );
foreach( $dom->getElementsByTagNameNS ( $nsURI , 'hostPIN' ) as $node )
{
echo $node->nodeValue.PHP_EOL;
}
如果您要从文件/网址加载xml而不是字符串,请使用$dom->load
代替$dom->loadXML
。
$node->nodeValue
是您想要的值。
在上面的示例中,$dom->lookupNameSpaceUri( 'use' )
可能不起作用,具体取决于声明命名空间的位置。在这种情况下,您可以找到namespaceURI(它在文档中的某处声明为xmlns:use="http://example.com/someurl"
)并替换此行:
$nsURI = $dom->lookupNameSpaceUri( 'use' );
白衣:
$nsURI = "http://example.com/someurl";