php-使用DomDocument将实体添加到DOCTYPE
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-使用DomDocument将实体添加到DOCTYPE,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3095字,纯文字阅读大概需要5分钟。
内容图文
![php-使用DomDocument将实体添加到DOCTYPE](/upload/InfoBanner/zyjiaocheng/693/a780cc2f9ad048e19fc72dd813562ea8.jpg)
我正在尝试创建一个看起来像这样的XML文档…
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE stylesheet [
<!ENTITY nbsp " ">
<!ENTITY copy "©">
<!ENTITY reg "®">
<!ENTITY trade "™">
<!ENTITY mdash "—">
<!ENTITY ldquo "“">
<!ENTITY rdquo "”">
<!ENTITY pound "£">
<!ENTITY yen "¥">
<!ENTITY euro "€">
]>
<NewsPost>
<Post>
<PermaLink>http://news.bradfordastronomy.co.uk/?p=92</PermaLink>
<Title>Change of Venue for Monday Meetings until March 2015</Title>
<Content>Due to?building work at Eccleshill library, the Monday?meetings will be held?at Upper Bolton Conservative Club, Idle Road, Bradford, BD2 4JN.
<span style="color: #ffff00"><strong>Update </strong></span>
The building work?is taking longer than expected;?however, we hope to?be back at the Library by the end of March 2015.</Content></Post></NewsPost>
我正在尝试使用PHP进行此操作.到目前为止,我目前的代码是…
$imp = new DOMImplementation;
$dtd = $imp->createDocumentType('stylesheet', '', '');
$domDoc = new DOMDocument('1.0', 'utf-8');
$domDoc->preserveWhiteSpace = false;
require_once(newsFolder.'/wp-blog-header.php');
//global $post;
$args = array( 'posts_per_page' => 1 );
$myposts = get_posts( $args );
$rootElement = $domDoc->createElement('NewsPost');
$domDoc->appendChild($rootElement);
foreach( $myposts as $post ) : setup_postdata($post);
$postNode = $domDoc->createElement("Post");
$rootElement->appendChild($postNode);
$permaLinkNode = $domDoc->createElement("PermaLink",get_permalink());
$postNode->appendChild($permaLinkNode);
$titleNode = $domDoc->createElement("Title",get_the_title());
$postNode->appendChild($titleNode);
//$contentNode = $domDoc->createElement("Excerpt",get_the_excerpt());
//$postNode->appendChild($contentNode);
$contentNode = $domDoc->createElement("Content",get_the_content());
$postNode->appendChild($contentNode);
endforeach;
$domDoc->save(cacheFolder.'LatestWordPressEntry.xml');
unset($domDoc);
您会注意到没有代码可将标签添加到!DOCTYPE
我在网上四处寻找,看不到这样做的最佳实践方法.我真的不想诉诸将XML保存到字符串,然后执行字符串替换(这总是很麻烦的)
任何帮助,将不胜感激.
基本上,我正在寻求将
<!DOCTYPE stylesheet>
标记为
<!DOCTYPE stylesheet [
<!ENTITY nbsp " ">
<!ENTITY copy "©">
<!ENTITY reg "®">
<!ENTITY trade "™">
<!ENTITY mdash "—">
<!ENTITY ldquo "“">
<!ENTITY rdquo "”">
<!ENTITY pound "£">
<!ENTITY yen "¥">
<!ENTITY euro "€">
]>
解决方法:
DOM不是用于构建文档类型定义的接口,这就是为什么您找不到用于将诸如实体声明之类的内容添加到内部子集的方法的原因.如果必须内联而不是使用外部子集,则必须将其作为完整字符串提供并相应地加载.
例:
$xml = <<<'XML'
<!DOCTYPE stylesheet [
<!ENTITY nbsp " ">
<!ENTITY copy "©">
<!ENTITY reg "®">
<!ENTITY trade "™">
<!ENTITY mdash "—">
<!ENTITY ldquo "“">
<!ENTITY rdquo "”">
<!ENTITY pound "£">
<!ENTITY yen "¥">
<!ENTITY euro "€">
]>
<NewsPost/>
XML;
$dom = new DOMDocument();
$dom->loadXML($xml);
echo $dom->saveXML();
输出:
<?xml version="1.0"?>
<!DOCTYPE stylesheet [
<!ENTITY nbsp " ">
<!ENTITY copy "©">
<!ENTITY reg "®">
<!ENTITY trade "™">
<!ENTITY mdash "—">
<!ENTITY ldquo "“">
<!ENTITY rdquo "”">
<!ENTITY pound "£">
<!ENTITY yen "¥">
<!ENTITY euro "€">
]>
<NewsPost/>
内容总结
以上是互联网集市为您收集整理的php-使用DomDocument将实体添加到DOCTYPE全部内容,希望文章能够帮你解决php-使用DomDocument将实体添加到DOCTYPE所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。