zoukankan      html  css  js  c++  java
  • 关于Xml数据处理上应用,进一步正则处理


       看着标题说实在的有些小绕口,许久不写文章了,但是在身边有许多用到的小知识点点,还是记录一下。

        今天在处理一个商家接口时,返回数据级其有意思,在产生定单信息时候,一个订单包含多个商品的时候XML的描述大体是这样的。

      例如:

    <orders>
            <row1>
                <order_time>2014-01-07 16:06:49</order_time>
                <item_name>Verera维芙雅 祛痘控油水100ml</item_name>
                <ext>E100020402|ad12123</ext>
                <order_id>20140107712606</order_id>
                <order_updtime>2014-01-07 16:06:49</order_updtime>
            </row1>
            <row2>
                <order_time>2014-01-07 16:06:49</order_time>
                <item_name>Verera维芙雅 祛痘控油水100ml</item_name>
                <ext>E100020402|ad12123</ext>
                <order_id>20140107712606</order_id>
                <order_updtime>2014-01-07 16:06:49</order_updtime>
            </row2>
            <row3>
                <order_time>2014-01-07 16:06:49</order_time>
                <item_name>Verera维芙雅 祛痘控油水100ml</item_name>
                <ext>E100020402|ad12123</ext>
                <order_id>20140107712606</order_id>
                <order_updtime>2014-01-07 16:06:49</order_updtime>
            </row3>
        </orders>


    
    

    
    
    

    这是一个局部的XML,其实看到这样一个XML去解析并非难事,但是对于开发系统而言,单独去解析有些浪费。

       其实我原三就是将XML反序列化为指定Model就行了,这样很容易做到,只是将Model属性做成XmlRoot 或者xmlelament xmlAttribute就行了,要看具体是什么属性。

    但是对于Row+Number,呃,行不通了。于是我想到了正则替换。

        在我的调试下的确可以实现,今天就是为了记录正则替换,

                 Regex regex =new Regex(@"<row(d+)>(.*?)</row1>");
    
                string replaceAfter = regex.Replace(args, @"<row>$2</row>");

    非常方便,这种替换在Net里面叫后向引用替换,大家可以尝试一下。





  • 相关阅读:
    多线程、线程同步、Lock接口
    线程池、匿名内部类、创建线程
    commons-IO、多线程
    PHP的一个坑
    jquery 实现导航栏滑动效果
    浏览器加载模式:window.onload和$(document).ready()的区别(详解)
    jQuery绑定事件-多种方式实现
    baidu-fex 精彩文章
    jquery1.11 操作checkbox:全选、取消全选、获取选择元素、获取取消选择元素(总结)
    倒计时时钟-原创
  • 原文地址:https://www.cnblogs.com/yhongl/p/3937894.html
Copyright © 2011-2022 走看看