如何更换  在文字?

时间:2018-01-24 13:48:29

标签: php xml

XML:

<programme start="20180124160000 +0200" stop="20180124164500 +0200" channel="506"><title lang="he">&#13;
         ריזולי ואיילס 7 11. הגופה</title><desc lang="he">&#13;
         מתח. 11. הגופה: גופתו של קברן נמצאת בתוך ארון קבורה של אחד מלקוחותיו והדבר מוביל את חברי הצוות לחשיפת גופות נוספות. ג'יין מבשרת לקרוביה על החלטתה לעבור לאף.בי.איי.</desc></programme></programmes>

我想从文本中删除所有&#13;

如何使用str_replace删除它?

PHP:

$c = $xpath->query("div[@class = 'show']/text()", $container)->item(0);
$desc = $c->nodeValue;}
$desc = str_replace("&#13;", "", $desc);
$echo desc;

2 个答案:

答案 0 :(得分:1)

解析器将为您完成:

$document = new DOMDocument();
$document->loadXml('<foo>&#13;</foo>');
var_dump($document->documentElement->textContent);

输出:

string(1) "
"

var_dump()输出显示该字符串只包含一个字符 - 回车符。但是,解析器仅对普通文本节点执行此操作,而不是对CDATA部分执行此操作:

$document = new DOMDocument();
$document->loadXml('<foo><![CDATA[&#13;]]></foo>');
var_dump($document->documentElement->textContent);

输出:

string(5) "&#13;"

在此,您需要使用字符串函数手动替换实体。

提示:使用DOMXpath::evaluate(),您可以使用string函数直接获取文本内容作为字符串来强制转换节点列表:

$description = $xpath->evaluate("string(div[@class = 'show'])", $container);

答案 1 :(得分:0)

似乎沿着这条线的某个地方,字符串已被html编码。

您可以使用以下方法重新解码:

let Projects = {
    template: `<v-expansion-panel >
      <v-expansion-panel-content ripple v-for="project in filteredProjects " 
      :key="project.id" lazy><div slot="header"
      @click="loadSpaces(project)">{{project.name}}</div>
      <v-card>
      <v-card-text class="grey lighten-3" >
            <v-btn flat block
            v-for="space in spaces" :key="space.id"
            @click="loadLayout(project)">{{space.id}}</v-btn>
          </v-card-text>
       </v-card>
      </v-expansion-panel-content>
    </v-expansion-panel>`,
    components: {
        Spaces
    },
    props: {
        searchFilter: String
    },
    data: () => ({
        data: uniBuilderProjects.state,
    }),
    computed: {
        filteredProjects: function () {
            var self = this;
            return self.data.projects.filter(function (project) {
                return project.name.toUpperCase().indexOf(self.searchFilter.toUpperCase()) !== -1;
            })
        },
        spaces: function () {
            return this.data.spaces;
            }
    },
    methods: {
        loadSpaces: function(project){
          uniBuilderProjects.loadSpaces(project.id);
        }
    },
    mounted: function () {
        // Load Projects
        uniBuilderProjects.loadProjects();

        this.$devices = this.$resource('https://jsonplaceholder.typicode.com/posts{/id}/comments');



    }
};

或:

html_entity_decode('thisisa&#13;test')

See here它是如何运作的。