我用xsd读出了一个xml文件,代码为:
foreach ($xpath->evaluate('//caaml:validAspect') as $expositons) {
echo $xpath->evaluate('string(@xlink:href)', $expositons)."<br>";
}
这里我得到了所有结果,但我无法将它们分配给它们。 我也试过这个:
foreach ($xpath->evaluate('//caaml:DangerRating') as $dangerRating) {
echo $xpath->evaluate('string(caaml:validAspect/@xlink:href)', $dangerRating)."<br>";
}
这里我只得到validAspect字段的第一个值。
这是xml结构:
现在我的问题是我怎样才能找到数据块?
谢谢!
现在我尝试了这个:
foreach ($xpath->evaluate('//caaml:DangerRating') as $i => $block) {
echo "block $i\n";
foreach ($xpath->evaluate('/caaml:validTime/caaml:validAspect', $block) as $expositions) {
echo $xpath->evaluate('string(@xlink:href)', $expositons)."<br>";
}
}
但我没有得到任何结果......
答案 0 :(得分:2)
你可以先获得阻止然后是
部分<?php
$xml = new DOMDocument;
$xml->load("test.xml");
$xpath = new DOMXPath($xml);
foreach ($xpath->evaluate('//caaml:DangerRating') as $i => $block) {
echo "block $i\n";
foreach ($xpath->evaluate('./caaml:validAspect', $block) as $expositions) {
echo $xpath->evaluate('string(@xlink:href)', $expositions) . "\n";
}
}