我想构建一个这样的函数:
function getTagNameOfGivenContent($content){...}
这是xml的一个例子:
<w:r>
<w:rPr>
<w:rFonts w:cs="Arial" />
<w:sz w:val="18" />
<w:szCs w:val="18" />
</w:rPr>
<w:t>tfInvLineTaxCode</w:t>
</w:r>
所以当我像这样调用函数时
getTagNameOfGivenContent('tfInvLineTaxCode')
它会返回
<w:t>tfInvLineTaxCode</w:t>
有谁能告诉我如何构建这个功能?
答案 0 :(得分:1)
这是一个......
的解决方案代码:
$source = <<<EOX
<root xmlns:w="whatever">
<w:r>
<w:rPr>
<w:rFonts w:cs="Arial" />
<w:sz w:val="18" />
<w:szCs w:val="18" />
</w:rPr>
<w:t>tfInvLineTaxCode</w:t>
</w:r>
</root>
EOX;
// Create/load a DOMDocument and a DOMXPath instance
$dom = new DomDocument();
$dom->loadXML($source);
$xpath = new DOMXPath($dom);
function getTagNameOfGivenContent($content)
{
// Query XPath instance for first node with a text that matches $content
global $xpath;
$tags = $xpath->query('//*[text()="' . $content .'"][1]');
if ($tags->length > 0) {
// We got a match
$tag = $tags->item(0);
return $tag->ownerDocument->saveXML($tag);
}
// No match
return null;
}
// Try it out
echo getTagNameOfGivenContent('tfInvLineTaxCode');
输出:
<w:t>tfInvLineTaxCode</w:t>
答案 1 :(得分:-1)
也许是这样的:
$dom = new \DOMDocument();
$dom->loadXML($xml_doc);
$script = $dom->getElementsByTagName('script');
更多信息 - &gt; http://php.net/manual/es/class.domdocument.php
我希望它有所帮助。