gpt4 book ai didi

php - 从PHP中的XML .NET DataSet获取数据

转载 作者:行者123 更新时间:2023-12-03 16:23:02 25 4
gpt4 key购买 nike

我从.NET Web服务获得以下XML:

<?xml version="1.0" encoding="utf-8"?>
<DataSet>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="Table1">
<xs:complexType>
<xs:sequence>
<xs:element name="GROUP_ID" type="xs:int" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<Table1 diffgr:id="Table11" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<GROUP_ID>NUM</GROUP_ID>
</Table1>
</NewDataSet>
</diffgr:diffgram>
</DataSet>


我只需要访问GROUP_ID节点值,但想知道最简单的方法。到目前为止,我一直在使用 DomDocumentDomXPath来查询该节点,但是我希望有一种更好的方法可以丢失:

$xml = new DomDocument();
$xml->load('file.xml');
$xp = new DomXPath($xml);
$result = $xp->query('//GROUP_ID');
$id = null;
foreach($result as $node){
$id = $node->nodeValue;
break;
}


谢谢!

最佳答案

不幸的是,需要以某种方式循环。如果您使用的是simplexml,则可以像下面这样简单地编写代码:

$xml = simplexml_load_file('file.xml');
$result = $xml->xpath('//GROUP_ID');
while(list(,$node) = each($result)) {
$id = (string) $node;
break; // optional
}

关于php - 从PHP中的XML .NET DataSet获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1161576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com