Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要将文本文件解析为特定的xml格式_Xml_Shell - Fatal编程技术网

需要将文本文件解析为特定的xml格式

需要将文本文件解析为特定的xml格式,xml,shell,Xml,Shell,需要将文本文件解析为特定的xml格式 现在我想将其转换为特定的xml文件格式。像 <packages> <package name="com" line-rate="0.45161290322580644" branch-rate="0.4915254237288136" complexity="3.391891891891892"> <classes> <class branch-rate="0" com

需要将文本文件解析为特定的xml格式

现在我想将其转换为特定的xml文件格式。像

<packages>
    <package name="com" line-rate="0.45161290322580644" branch-rate="0.4915254237288136" complexity="3.391891891891892">
        <classes>
            <class branch-rate="0" complexity="0" filename="/home/abcd/src/solaris/abcd.C" line-rate="0.25" name="TestRunnerModel">
                <methods/>
                <lines>
                    <line number="13" hits="1" branch="true"/>
                    <line number="14" hits="1" branch="true"/>
                    <line number="15" hits="1" branch="false"/>
                    <line number="12" hits="0" branch="false"/>
                </lines>
            </class>
            <class branch-rate="0" complexity="0" filename="/home/abcd/src/solaris/abcd.C" line-rate="0.25" name="TestRunnerModel">
                <methods/>
                <lines>
                    <line number="13" hits="1" branch="true"/>
                    <line number="14" hits="1" branch="true"/>
                    <line number="15" hits="1" branch="false"/>
                    <line number="12" hits="0" branch="false"/>
                </lines>
            </class>
            <class branch-rate="0" complexity="0" filename="/home/abcd/src/solaris/xyz.C" line-rate="0.25" name="TestRunnerModel">
                <methods/>
                <lines>
                    <line number="13" hits="1" branch="true"/>
                    <line number="14" hits="0" branch="true"/>
                    <line number="15" hits="1" branch="false"/>
                    <line number="12" hits="0" branch="false"/>
                </lines>
            </class>
        </classes>
    </package>
</packages>

大多数xml参数都是常量,只有少数需要填充,如

从SRCFILE读取文件名:/home/abcd/src/solaris/xyz.C 及

行号=“978”hits=“0”branch=“true” 行号=“979”hits=“1”branch=“false” 等


等等。请帮忙。

原则上,这很简单。您有给定输入格式的输入,并且希望以给定输出格式生成输出。您需要输入格式的解析器来识别其结构并构建表示该结构的数据结构。您还需要一个用于生成所需XML的数据结构的序列化程序

对于您的输入格式,可能存在解析库,在这种情况下,您可能希望使用它们,而不是从头开始编写自己的解析器。您的语言也可能(而且可能确实)有用于将事物序列化为XML的库;您可能想使用它们


如果您知道如何为定义的格式编写解析器,那么现在就知道需要做什么了。如果您不这样做,您可能可以使用sed、awk、perl或您选择的批处理编辑器来伪造它,但是如果您花一些时间学习解析,那么您作为程序员的生活将更加有趣

StackOverflow是帮助在职程序员解决问题,而不是提供免费咨询服务。请编辑上面的问题,以显示您遇到问题的代码。祝你好运。正如庇护所评论的那样,在你的问题上要具体一点。你不能指望别人做你的工作,所以做一些基础工作,向我们展示,我们很乐意帮助你!
<packages>
    <package name="com" line-rate="0.45161290322580644" branch-rate="0.4915254237288136" complexity="3.391891891891892">
        <classes>
            <class branch-rate="0" complexity="0" filename="/home/abcd/src/solaris/abcd.C" line-rate="0.25" name="TestRunnerModel">
                <methods/>
                <lines>
                    <line number="13" hits="1" branch="true"/>
                    <line number="14" hits="1" branch="true"/>
                    <line number="15" hits="1" branch="false"/>
                    <line number="12" hits="0" branch="false"/>
                </lines>
            </class>
            <class branch-rate="0" complexity="0" filename="/home/abcd/src/solaris/abcd.C" line-rate="0.25" name="TestRunnerModel">
                <methods/>
                <lines>
                    <line number="13" hits="1" branch="true"/>
                    <line number="14" hits="1" branch="true"/>
                    <line number="15" hits="1" branch="false"/>
                    <line number="12" hits="0" branch="false"/>
                </lines>
            </class>
            <class branch-rate="0" complexity="0" filename="/home/abcd/src/solaris/xyz.C" line-rate="0.25" name="TestRunnerModel">
                <methods/>
                <lines>
                    <line number="13" hits="1" branch="true"/>
                    <line number="14" hits="0" branch="true"/>
                    <line number="15" hits="1" branch="false"/>
                    <line number="12" hits="0" branch="false"/>
                </lines>
            </class>
        </classes>
    </package>
</packages>