我需要将数据从第三方网站导入我自己的网站,我正在使用XPath这样做。我已经创建了一个PHP脚本来抓取我想要的数据并将其转换为XML。
现在,我必须创建自己的DTD,这就是问题所在。
当我尝试使用W3C验证XML Feed时,表示Feed没有根元素。但我以为我做了 - 我做错了什么?
DTD:
<!DOCTYPE item [
<!ELEMENT item (id,company,homepage,language,title,link,guid,description,pubDate,creator,contact,mail,phone,region,image,price,term)>
<!ELEMENT id (#ID)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT homepage (#PCDATA)>
<!ELEMENT language (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT link (#PCDATA)>
<!ELEMENT guid (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT pubDate (#PCDATA)>
<!ELEMENT creator (#PCDATA)>
<!ELEMENT contact (#PCDATA)>
<!ELEMENT mail (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT region (#PCDATA)>
<!ELEMENT image (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT term (#PCDATA)>
]>
XML
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE item SYSTEM "buysell.dtd">
<item>
<id>'.$num.'</id>
<company>'.$company.'</company>
<homepage>'.$homepage.'</homepage>
<language>sv</language>
<title>'.$title.'</title>
<link>'.$anchor.'</link>
<guid>'.$anchor.'</guid>
<description>'.$title.'</description>
<pubDate>'.$date.'</pubDate>
<creator>'.$company.'</creator>
<contact>'.$contact.'</contact>
<mail>'.$mail.'</mail>
<phone>'.$phone.'</phone>
<region>'.$region.'</region>
<image>'.$image.'</image>
<price>'.$price.'</price>
<term>'.$term.'</term>
</item>';
答案 0 :(得分:0)
这里有三个问题需要修复:
DTD不应该有文档类型声明(封闭 !DOCTYPE结构),但必须只是一个列表!ELEMENT 声明。
XML 1.0中没有关键字“#ID”,这应该只是 “#PCDATA”
您的文档实例有一个虚假的“';”结束后的字符串 结束标记,因此形成不良。
解决这些问题,一切都会好起来......