尝试从xml文件回显所有AudioTracks数据。
还尝试获取有效名称值。
我尝试了以下方法,但不知道如何做:
<?php
$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->load('1.xml');
$Tracks = $dom->getElementsByTagName('AudioTrack');
foreach($Tracks as $AudioTrack) {
echo $AudioTrack->firstChild->firstChild->data . '<br/>';
}
?>
<?xml version="1.0" encoding="UTF-8"?>
<Pton MajorVersion="4" MinorVersion="9.5_326" SchemaChangeCount="4"
Creator="Pton" Revision="io2f5nghga">
<LiveSet>
<OverwriteProtectionNumber Value="2305" />
<LomId Value="0" />
<LomIdView Value="0" />
<Tracks>
<AudioTrack Id="14">
<LomId Value="0" />
<LomIdView Value="0" />
<EnvelopeModePreferred Value="false" />
<TrackDelay>
<Value Value="0" />
<IsValueSampleBased Value="false" />
</TrackDelay>
<Name>
<EffectiveName Value="1-Audio" />
<UserName Value="" />
<Annotation Value="" />
</Name>
答案 0 :(得分:0)
尝试致电documentElement
$ dom-> documentElement-> getElementsByTagName('AudioTrack');
文档说像这样
documentElement:
这是一个方便属性,它允许直接访问子级 节点,即文档的文档元素。
答案 1 :(得分:0)
假设所有节点值都包含在一个属性中,并且要输出所有数据,则可以执行以下操作。
$Tracks = $dom->getElementsByTagName('AudioTrack');
foreach($Tracks as $AudioTrack) {
$audioTrackAttributes = $AudioTrack->attributes;
echo 'AudioTrack '.$audioTrackAttributes->item(0)->nodeValue.'<br/>';
$TrackChildNodes = $AudioTrack->childNodes;
foreach($TrackChildNodes as $child) {
outputNode($child);
}
echo '<br/>';
}
function outputNode($nextNode)
{
$childAttributes = $nextNode->attributes;
if ( !empty($childAttributes) && $childAttributes->length > 0 ) {
echo $nextNode->nodeName . ': ' . $childAttributes->item(0)->nodeValue . '<br/>';
} else {
echo $nextNode->nodeName . '<br/>';
}
$grandchildNodes = $nextNode->childNodes;
if ( !empty($grandchildNodes) ) {
foreach($grandchildNodes AS $grandchild) {
outputNode($grandchild);
}
}
return;
}
您需要将数据封装在文档节点内,并正确关闭Pton节点。
<document>
<Pton MajorVersion="4" . . . />
<Etc.></Etc.>
</document>