Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
空标记xml+;php+;多姆_Php_Xml_Dom - Fatal编程技术网

空标记xml+;php+;多姆

空标记xml+;php+;多姆,php,xml,dom,Php,Xml,Dom,如何将标记引用指定给文本 $xml =<<<EOT <?xml version="1.0"?> <root> <section name="Section2"> <category id="category1_of_section2" name="msn"> teste <arti name="article2">value1</arti> <arti name="article3

如何将标记引用指定给文本

$xml =<<<EOT
<?xml version="1.0"?>
<root>
<section name="Section2">
  <category id="category1_of_section2" name="msn">
  teste
   <arti name="article2">value1</arti>
   <arti name="article3">value2 <sref ref="article6" />value6 <sref ref="article7" />value7</arti>
   <arti name="article4">value3 <sref ref="article8" />value8</arti>
  </category>
  <category id="Category2_of_section2" name="webcare">
    <arti name="param3">value4</arti>
  </category>
</section>
</root>
EOT;

$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->loadXML($xml);

$params = $dom->getElementsByTagName('section'); // Find Sections 
$k=0;
$numero2=0;
$roomStr3="";
foreach ($params as $param)
{
         echo "Section Attribute :-> ".$params->item($k)->getAttribute('name')."<br>";
         $params2 = $params->item($k)->getElementsByTagName('category');
      $i=0;
        foreach ($params2 as $p) 
        {
            echo "&nbsp;&nbsp;- Category Attribute Name :-> ".$params2->item($i)->getAttribute('name')."<br>";
            $params3 = $params2->item($i)->getElementsByTagName('arti');
                $j=0;

                    foreach ($params3 as $p2)
                    {

                    echo "&nbsp;&nbsp;&nbsp;- Article Attribute Name : ".$params3->item($j)->getAttribute('name')."";
                    echo "&nbsp;&nbsp; Value : ".$params3->item($j)->nodeValue."<br>";

                    var_dump($params3->item($j));
                    $elems3 = $params3->item($j)->getElementsByTagName('sref');

                    $j++;
                    }
        $i++;
      }
$k++;
}
//Print
    Section Attribute :-> Section2
      - Category Attribute Name :-> msn
       - Article Attribute Name : article2   Value : value1
       - Article Attribute Name : article3   Value : value2 value6 value7
       - Article Attribute Name : article4   Value : value3 value8
      - Category Attribute Name :-> webcare
       - Article Attribute Name : param3   Value : value
$xml=getElementsByTagName('section');//查找部分
$k=0;
$numero2=0;
$roomStr3=“”;
foreach($params作为$param)
{
echo“Section属性:->”$params->item($k)->getAttribute('name')。“
”; $params2=$params->item($k)->getElementsByTagName('category'); $i=0; foreach($params2作为$p) { echo“-Category属性名称:->”$params2->item($i)->getAttribute('Name')。“
”; $params3=$params2->item($i)->getElementsByTagName('arti'); $j=0; foreach($params3作为$p2) { echo“-Article属性名称:“..params3->item($j)->getAttribute('Name')”; echo“Value:”$params3->item($j)->nodeValue。“
”; 变量转储($params3->item($j)); $elems3=$params3->item($j)->getElementsByTagName('sref'); $j++; } $i++; } $k++; } //印刷品 节属性:->节2 -类别属性名称:->msn -项目属性名称:article2值:value1 -物品属性名称:物品3值:值2值6值7 -物品属性名称:article4值:value3值8 -类别属性名称:->webcare -项目属性名称:param3值:值
如何显示ref

例:

  • 物品属性名称:article3值:value2ref=“article6”:value6ref=“article7”:value7

  • 物品属性名称:article4值:value3ref=“article8”:value8


好吧,您需要使用
getAttribute
函数来完成此操作

您已经使用过它:

echo "&nbsp;&nbsp;&nbsp;- Article Attribute Name : ".$params3->item($j)->getAttribute('name')."";
只需对
-元素执行相同的操作:

$elems3 = $params3->item($j)->getElementsByTagName('sref');
$elems3Attribute = $elems3->getAttribute('ref');

您能否将代码简化为相关部分,并尝试更好地解释标题“为文本xml php分配空标记”上下文中“如何显示引用”的含义