我使用的XML可以在这里找到:http://www.politie.nl/rss/ab/gemeenten/zuid-holland/rotterdam.xml。
问题是有很多带有:
的标签。我们想用_
代替:
。像rdf:about
, dc:date
, rdf:resources
这样的标签应该变成rdf_about
, dc_date
和rdf_resources
。
我们正在使用PHP和simplexml.
简短的回答是,如果您将此XML作为XML使用,那么您真的不应该尝试这样做。XML QName是一个URI,它通过连接与前缀(:
之前的部分)和本地名称(:
之后的部分)相关联的名称空间来构建。这意味着当您看到这样的XML时:
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
version="2.0">
<channel>
<dc:date>2013-06-07T13:02:42Z</dc:date>
<dc:language>nl</dc:language>
您有一个名为rss
的元素包含一个名为channel
的元素,其中包含名为http://purl.org/dc/elements/1.1/date
和http://purl.org/dc/elements/1.1/language
的元素。您确实不希望对其进行任何修改,因为这些uri提供了这些元素的含义。由于:
实际上不是命名元素的结果URI的一部分,因此讨论替换元素名称中的:
是没有意义的,因为它从一开始就不存在。
如果您真的想放弃所有的语义信息,当然,您可以使用XML处理库来读取您拥有的XML,并编写新的XML,将所有的http://purl.org/dc/elements/1.1/language
替换为dc_language
元素,但是很难看到其中的实用程序。