想要使用 php 在 html 中显示 XML 视图
Want to show XML view in html using php
我有 oai.php page.Now 当我输入 url oai.php?verb=identify 然后想显示 identify.xml.But 中的内容 我想要当我查看仅显示 xml.
数据的 identify.xml.Below 代码时,相同 url(oai.php?verb=identify)
<?php
include "config.php";
$id= $_GET['verb'];
//echo $id;
if($id=="identify")
{
$date_mod = gmdate("Y-m-d\TH:i:s\Z");
$rss_txt ='<?xml version="1.0" encoding="utf-8"?>
<OAI-PMH xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.openarchives.org/OAI/2.0/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>' .$date_mod. '</responseDate>
<request verb="Identify">http://mywebsite.org/oai</request>
<Identify>
<repositoryName>mydomain</repositoryName>
<baseURL>mywesite.com</baseURL>
<protocolVersion>2.0</protocolVersion>
<adminEmail>myemail</adminEmail>
<earliestDatestamp>'.$date_mod.'</earliestDatestamp>
<deletedRecord>transient</deletedRecord>
<granularity>YYYY-MM-DDThh:mm:ssZ</granularity>
</Identify>
</OAI-PMH>';
}
else if($id=="ListRecords")
{
include "config.php";
$date_mod = gmdate("Y-m-d\TH:i:s\Z");
$viewss1=$con->query("SELECT COUNT(upload_paper_id) FROM upload_papers");
$cview1=$viewss1->fetch_row();
$countt1=$cview1[0];
$rss_txt = '<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://localhost/oai-file/data/oai2.xsl" ?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>' .$date_mod. '</responseDate>
<request verb="ListRecords" metadataPrefix="oai_dc">http:mywebsite.org</request>
<ListRecords>';
$query = "SELECT * FROM upload_papers";
$result=$con->query($query);
while($values_query = mysqli_fetch_assoc($result))
{
$year= $values_query['year'];
$upload_paper_id= $values_query['upload_paper_id'];
$rss_txt = '<record>
<header>
<identifier>' .$upload_paper_id. '</identifier>
<datestamp>' .$date_mod. '</datestamp>
<setSpec>mydoc8:BIH</setSpec>
</header>
<metadata>
<oai_dc:dc
xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/
http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:title xml:lang="en-US">' .$values_query['paper_title']. '</dc:title>
<dc:creator>' . $values_query['author_name']. '</dc:creator>
<dc:creator>' . $values_query['co_author_name']. '</dc:creator>
<dc:description xml:lang="en-US">' .$values_query['abstract']. '</dc:description>
<dc:publisher xml:lang="en-US">' .$values_query['journal_nam']. '</dc:publisher>
<dc:contributor xml:lang="en-US">' .$values_query['author_name']. '</dc:contributor>
<dc:type xml:lang="en-US">Article</dc:type>
<dc:format>application/pdf</dc:format>
<dc:identifier>http://mywebsite'.$year.'/article.php?page='.$upload_paper_id.'</dc:identifier>
<dc:language>en</dc:language>
</oai_dc:dc>
</metadata>
</record>';
}
$rss_txt = '<resumptionToken
completeListSize="'.$countt1.'"
cursor="0">'.$date_mod.'</resumptionToken>
</ListRecords>
</OAI-PMH>';
}
else if($id=="ListSets")
{
$rss_txt =file_get_contents("ListSets.xml");
}
header('Content-type: application/xml');
echo $rss_txt;
?>
上面的代码只显示下面附加的xml.The输出的数据
我想要像这样的输出
.如果我在 url 中键入 verb=identify 然后它想要显示 identify.xsd 或 xml 文件任何 one.Then 我键入 Listsets 想要显示 [=29= 中的内容]动词等于空想表明身份page.Please求助me.Its真气人me.Thanku
代码有一些问题。最主要的是将 header 设置为 XML 内容类型。这将告诉浏览器期望什么。但是还有一些其他问题。
$id= $_GET['verb'];
//echo $id;
if($id=="identify")
{
$date_mod = gmdate("Y-m-d\TH:i:s\Z");
$rss_txt ='<?xml version="1.0" encoding="utf-8"?>
<OAI-PMH xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.openarchives.org/OAI/2.0/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>' .$date_mod. '</responseDate>
<request verb="Identify">http://mywebsite.org/oai</request>
<Identify>
<repositoryName>mydomain</repositoryName>
<baseURL>mywesite.com</baseURL>
<protocolVersion>2.0</protocolVersion>
<adminEmail>myemail</adminEmail>
<earliestDatestamp>'.$date_mod.'</earliestDatestamp>
<deletedRecord>transient</deletedRecord>
<granularity>YYYY-MM-DDThh:mm:ssZ</granularity>
</Identify>
</OAI-PMH>';
}
else if($id=="ListRecords")
{
$rss_txt =file_get_contents("compend1.xml");
}
else if($id=="ListSets")
{
$rss_txt =file_get_contents("ListSets.xml");
}
header('Content-type: application/xml');
echo $rss_txt;
您有 $rss_txt .=
与 .表示附加字符串,因为您没有在任何地方声明它,所以会给出有关未定义变量的错误。还有内容 - XML 需要从字符串的开头开始,所以删除空格。
主要是有...
header('Content-type: application/xml');
但是,为了使其正常工作,您需要确保注释掉 echo
,我认为这是一些调试代码。
在执行 if
时 - 单个 =
用于分配一个值,因此您需要 ==
来比较这些值。
您可以使用 $_GET[]
访问参数,而不是您使用的方式,简单得多。
我已经使用 file_get_contents()
从其他文件中获取数据并将 echo
移到末尾,因此它们都具有相同的逻辑。
我有 oai.php page.Now 当我输入 url oai.php?verb=identify 然后想显示 identify.xml.But 中的内容 我想要当我查看仅显示 xml.
数据的 identify.xml.Below 代码时,相同 url(oai.php?verb=identify) <?php
include "config.php";
$id= $_GET['verb'];
//echo $id;
if($id=="identify")
{
$date_mod = gmdate("Y-m-d\TH:i:s\Z");
$rss_txt ='<?xml version="1.0" encoding="utf-8"?>
<OAI-PMH xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.openarchives.org/OAI/2.0/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>' .$date_mod. '</responseDate>
<request verb="Identify">http://mywebsite.org/oai</request>
<Identify>
<repositoryName>mydomain</repositoryName>
<baseURL>mywesite.com</baseURL>
<protocolVersion>2.0</protocolVersion>
<adminEmail>myemail</adminEmail>
<earliestDatestamp>'.$date_mod.'</earliestDatestamp>
<deletedRecord>transient</deletedRecord>
<granularity>YYYY-MM-DDThh:mm:ssZ</granularity>
</Identify>
</OAI-PMH>';
}
else if($id=="ListRecords")
{
include "config.php";
$date_mod = gmdate("Y-m-d\TH:i:s\Z");
$viewss1=$con->query("SELECT COUNT(upload_paper_id) FROM upload_papers");
$cview1=$viewss1->fetch_row();
$countt1=$cview1[0];
$rss_txt = '<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://localhost/oai-file/data/oai2.xsl" ?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>' .$date_mod. '</responseDate>
<request verb="ListRecords" metadataPrefix="oai_dc">http:mywebsite.org</request>
<ListRecords>';
$query = "SELECT * FROM upload_papers";
$result=$con->query($query);
while($values_query = mysqli_fetch_assoc($result))
{
$year= $values_query['year'];
$upload_paper_id= $values_query['upload_paper_id'];
$rss_txt = '<record>
<header>
<identifier>' .$upload_paper_id. '</identifier>
<datestamp>' .$date_mod. '</datestamp>
<setSpec>mydoc8:BIH</setSpec>
</header>
<metadata>
<oai_dc:dc
xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/
http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:title xml:lang="en-US">' .$values_query['paper_title']. '</dc:title>
<dc:creator>' . $values_query['author_name']. '</dc:creator>
<dc:creator>' . $values_query['co_author_name']. '</dc:creator>
<dc:description xml:lang="en-US">' .$values_query['abstract']. '</dc:description>
<dc:publisher xml:lang="en-US">' .$values_query['journal_nam']. '</dc:publisher>
<dc:contributor xml:lang="en-US">' .$values_query['author_name']. '</dc:contributor>
<dc:type xml:lang="en-US">Article</dc:type>
<dc:format>application/pdf</dc:format>
<dc:identifier>http://mywebsite'.$year.'/article.php?page='.$upload_paper_id.'</dc:identifier>
<dc:language>en</dc:language>
</oai_dc:dc>
</metadata>
</record>';
}
$rss_txt = '<resumptionToken
completeListSize="'.$countt1.'"
cursor="0">'.$date_mod.'</resumptionToken>
</ListRecords>
</OAI-PMH>';
}
else if($id=="ListSets")
{
$rss_txt =file_get_contents("ListSets.xml");
}
header('Content-type: application/xml');
echo $rss_txt;
?>
上面的代码只显示下面附加的xml.The输出的数据
代码有一些问题。最主要的是将 header 设置为 XML 内容类型。这将告诉浏览器期望什么。但是还有一些其他问题。
$id= $_GET['verb'];
//echo $id;
if($id=="identify")
{
$date_mod = gmdate("Y-m-d\TH:i:s\Z");
$rss_txt ='<?xml version="1.0" encoding="utf-8"?>
<OAI-PMH xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.openarchives.org/OAI/2.0/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>' .$date_mod. '</responseDate>
<request verb="Identify">http://mywebsite.org/oai</request>
<Identify>
<repositoryName>mydomain</repositoryName>
<baseURL>mywesite.com</baseURL>
<protocolVersion>2.0</protocolVersion>
<adminEmail>myemail</adminEmail>
<earliestDatestamp>'.$date_mod.'</earliestDatestamp>
<deletedRecord>transient</deletedRecord>
<granularity>YYYY-MM-DDThh:mm:ssZ</granularity>
</Identify>
</OAI-PMH>';
}
else if($id=="ListRecords")
{
$rss_txt =file_get_contents("compend1.xml");
}
else if($id=="ListSets")
{
$rss_txt =file_get_contents("ListSets.xml");
}
header('Content-type: application/xml');
echo $rss_txt;
您有 $rss_txt .=
与 .表示附加字符串,因为您没有在任何地方声明它,所以会给出有关未定义变量的错误。还有内容 - XML 需要从字符串的开头开始,所以删除空格。
主要是有...
header('Content-type: application/xml');
但是,为了使其正常工作,您需要确保注释掉 echo
,我认为这是一些调试代码。
在执行 if
时 - 单个 =
用于分配一个值,因此您需要 ==
来比较这些值。
您可以使用 $_GET[]
访问参数,而不是您使用的方式,简单得多。
我已经使用 file_get_contents()
从其他文件中获取数据并将 echo
移到末尾,因此它们都具有相同的逻辑。