douweihui0178
2013-02-01 11:53
浏览 46
已采纳

XSLTProcessor从字符串而不是文档转换为xml

This is my problem: I am trying to use XSLTProcessor to transform xml to html. I have already read about its use, but I have the following problem - the transformToXML(xml_file) function requires the xml_file to be an actual xml file. Is it possible for the transformToXML function to use a string instead of a file? I have tried searching this online but all I get is stuff I have already seen with the use of an xml file. Since I need to use this transformation on a big scale (a big number of different transformations for a lot of users) I can't use a file on the server. Here's my code so maybe you can get a better picture:

$productxml=  GetShoppingItem($params);

$file = 'ProductQr.xml';    
file_put_contents($file, $productxml);

$xml = new DOMDocument();
$xml->load('ProductQr.xml');

$XSL = new DOMDocument();
$XSL->load('XSLTForProduct.xsl');

$xslt = new XSLTProcessor();
$xslt->importStylesheet($XSL);

$html = $xslt->transformToXML( $xml );
return $html;

As you can see, here I am getting the $productxml string and writing it into ProductQr.xml so I can later use it here: transformToXML($xml). But there will be a lot of transformations and I can't use one xml file since there are a lot of different products. Ideally I would use:

$html = $xslt->transformToXML($productxml);

without writing into the xml file, but the transformToXML needs a file and not a string. Any thoughts?

图片转代码服务由CSDN问答提供 功能建议

这是我的问题:我正在尝试使用XSLTProcessor将xml转换为html。 我已经阅读了它的用法,但我遇到了以下问题 - transformToXML(xml_file)函数要求xml_file是一个实际的xml文件。 transformToXML函数是否可以使用字符串而不是文件? 我试过在线搜索,但我得到的是我已经看到的使用xml文件的东西。 由于我需要大规模地使用这种转换(许多用户的大量不同的转换)我不能在服务器上使用文件。 这是我的代码所以也许你可以得到更好的图片:

  $ productxml = GetShoppingItem($ params); 
 
 $ file ='ProductQr.xml';  
file_put_contents($ file,$ productxml); 
 
 $ xml = new DOMDocument(); 
 $ xml-> load('ProductQr.xml'); 
 
 $ XSL = new DOMDocument();  
 $ XSL-> load('XSLTForProduct.xsl'); 
 
 $ xslt = new XSLTProcessor(); 
 $ xslt-> importStylesheet($ XSL); 
 
 $ html = $ xslt  - > transformToXML($ xml); 
return $ html; 
   
 
 

如您所见,我在这里获取$ productxml字符串并将其写入ProductQr。 xml所以我以后可以在这里使用它:transformToXML($ xml)。 但是会有很多转换,我不能使用一个xml文件,因为有很多不同的产品。 理想情况下我会使用:

  $ html = $ xslt-> transformToXML($ productxml); 
   
 
 

无需写入xml文件,但transformToXML需要一个文件而不是字符串。 有什么想法吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • douwojiao5919 2013-02-01 11:57
    已采纳

    You can use loadXML instead of load to parse XML from a string.

    点赞 评论

相关推荐 更多相似问题