php - 删除子标记名称不是值

标签 php javascript xml xslt

我有这种类型的 xml 文件:-

<product>
   <node>
       <region_id>
                <node>1</node>
       </region_id>
       <region_time>
                <node>27</node>
                <node>02</node>
                <node>2013</node>
       </region_time>
   </node>
</ptroduct>

我想像这样改变它们:-

<product>
      <region_id>1</region_id>
      <region_time>27,02,2013</region_time>
</product>

我想删除 <Node>只想要上面的值

最佳答案

这个转换:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
  <xsl:copy>
   <xsl:apply-templates select="node()|@*"/>
  </xsl:copy>
 </xsl:template>

 <xsl:template match="node">
  <xsl:apply-templates/>
 </xsl:template>

 <xsl:template match="node[position()>1]/text()">
   <xsl:text>,</xsl:text>
   <xsl:value-of select="."/>
 </xsl:template>
</xsl:stylesheet>

应用于提供的 XML 文档时:

<product>
    <node>
        <region_id>
            <node>1</node>
        </region_id>
        <region_time>
            <node>27</node>
            <node>02</node>
            <node>2013</node>
        </region_time></node>
</product>

产生想要的、正确的结果:

<product>
   <region_id>1</region_id>
   <region_time>27,02,2013</region_time>
</product>

关于php - 删除子标记名称不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15105040/

相关文章:

PHP:仅在 HTML 标记之外转义引号(正则表达式)

javascript - 使用 jquery 删除克隆元素的一部分

简单类型字符串的 XML 模式不区分大小写枚举

php - 在 PHP 中对多维数组进行排序

javascript - 在 SCRIPT 标签内执行 PHP

php - 如何将 MySQL 内容(文本+html 内容)分成列?

javascript - innerHTML、<form> 和 Firefox

javascript - 使用 foreach 使用 Razor 创建一个盒子并在其下方有一个数字的问题

xml - XSL 转换,选择前缀命名空间?

java - 带有 PathVariable 的 API 的 XML 响应