我正在使用的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。
答案 0 :(得分:3)
简短的回答是,如果您使用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,并编写用{http://purl.org/dc/elements/1.1/language
替换所有dc_language
的新XML。 1}}元素,但很难看到实用程序。