我在XML文件中有这个:
<?xml-stylesheet href="../StyleSheets/VDD11.xsl" type="text/xsl"?>
我想获取此属性的值:href=""
。
我正在使用PHP 5。
我已尝试过此代码,但不想工作:
function find_XSL_Fiche($file)
{
$xml = new DOMDocument();
$xml->load($file);
echo $file.'<br />';
$searchNode = $xml->getElementsByTagName( "xml-stylesheet" );
$xsl = "";
foreach ($searchNode as $searchNode)
{
$xsl = $searchNode->getAttribute('href');
}
echo $xsl;
return $xsl;
}
最后,我想得到../StyleSheets/VDD11.xsl
感谢名单
答案 0 :(得分:1)
这是一个处理指令节点。您可以使用Xpath来获取它:
获取所有处理指令节点:
//processing-instruction()
按名称过滤:
//processing-instruction()[name() = "xml-stylesheet"]
将第一个找到的PI转换为字符串:
string(//processing-instruction()[name() = "xml-stylesheet"])
$dom = new DOMDocument();
$dom->loadXml(
'<?xml version="1.0"?><?xml-stylesheet href="../StyleSheets/VDD11.xsl" type="text/xsl"?><xml/>'
);
$xpath = new DOMXpath($dom);
var_dump(
$xpath->evaluate(
'string(//processing-instruction()[name() = "xml-stylesheet"])'
)
);
string(47) "href="../StyleSheets/VDD11.xsl" type="text/xsl""
PI的内容是文本,没有固定的结构。因此,您需要使用字符串函数或PCRE手动从结果中解析数据。