gpt4 book ai didi

xml - Shell 脚本问题 : how to parse a special "word" out of a line of xml file

转载 作者:行者123 更新时间:2023-12-04 19:02:52 25 4
gpt4 key购买 nike

我真的需要你的帮助。我有一个 xml-log 文件,其中包含我必须解析的内容信息。

这样的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<results>
<error file="mixed.cpp" line="11" id="unreadVariable" severity="style" msg="Variable 'wert' is assigned a value that is never used."/>
<error file="*" line="0" id="unmatchedSuppression" severity="style" msg="Unmatched suppression: missingIncludeSystem"/>
</result>

我必须将其解析为 html 表。我创建了一个 blanco html:


错误摘要
<thead>
<tr>
<th>Filename</th>
<th>Line</th>
<th>Testname</th>
<th>Severity</th>
<th>Severity_description</th>
</tr>
</thead>

<tbody>

</table>

所以我尝试读取 xml 混合.cpp 填写到 文件名

这是我的 shell 脚本(仅适用于文件名,因为它仍然不起作用):
#!/bin/bash

INPUT=./static-code-analysis.xml
OUTPUT=./mixed_output.html
LINE_XML=3
while read LINE_XML
do
FILENAME=$(grep 'error file' $LINE_XML | awk -F\" '{print $2}')
sed '/<tbody>/ a <tr> <td>$FILENAME</td> </tr>'
$OUTPUT >abc
done < $INPUT

我想把所有的行都扔掉,在每一行中找到前置词 错误文件 而不是剪掉的地方 混合.cpp 并将其保存在 FILENAME 中。

不幸的是,它不起作用。 FILENAME 仍然是空的,我不能真正填充 html。

有人可以说我卡在哪里了吗?

多谢 ;)

最佳答案

给定一个像这样的 XSLT 模板:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="/results">
<html>
<body>
<table>
<thead>
<tr>
<th>Filename</th>
<th>Line</th>
<th>Testname</th>
<th>Severity</th>
<th>Severity_description</th>
</tr>
</thead>

<tbody>
<xsl:apply-templates select="error"/>
</tbody>

</table>
</body>
</html>
</xsl:template>

<xsl:template match="error">
<tr>
<td><xsl:value-of select="@file"/></td>
<td><xsl:value-of select="@line"/></td>
<td><xsl:value-of select="@id"/></td>
<td><xsl:value-of select="@severity"/></td>
<td><xsl:value-of select="@msg"/></td>
</tr>
</xsl:template>

</xsl:stylesheet>

...和一个 errors.xml像这样(我不得不修正你原来的语法,它在一个地方使用了 results 而在另一个地方使用了 result):
<?xml version="1.0" encoding="UTF-8"?>
<results>
<error file="mixed.cpp" line="11" id="unreadVariable" severity="style" msg="Variable 'wert' is assigned a value that is never used."/>
<error file="*" line="0" id="unmatchedSuppression" severity="style" msg="Unmatched suppression: missingIncludeSystem"/>
</results>

...以下命令:
xsltproc template.xsl errors.xml

...发出一个看起来像您要求的 HTML 文件。

关于xml - Shell 脚本问题 : how to parse a special "word" out of a line of xml file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30406248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com