大家好,
我一直在浏览问答,但找不到任何方法来实现这一点。基本上,我想在 1 个文本文件中获取 2 个语法的结果。
这是 XML 的一部分:
<JOB PRO_JOB="D6C1608493" XMLMODE="REPORT">
<SAMPLE CUID="0001347496" SAMPLETYPE="OTHER" SAMPLEIDENT="1608493-2" SAMPLETIME="18/09/2016 2300">
<SCHEME SCH_CODE="/CSA" SCHEMETYPE="ANALYS">
<ANALYTE ANALYTECODE="S" ANALYTENAME="S" TAG="FEED1" NUMERICVALUE="1.019999980926514" ROUNDEDVALUE="1.02">
</ANALYTE>
</SCHEME>
</SAMPLE>
因此,当我尝试在 powershell 中执行命令时:$doc.job.sample.scheme.analyte
它给了我 Analyte 的结果,这很好,但我还想获取结果以$doc .job.sample
在 1 个输出文本文件中获取命令的结果。能够输出它,但只能使用 1 个命令。
附带问题:如何在执行时仅显示 SAMPLETIME 值$doc1.job.sample
?
答案1
似乎您缺少一个结束标记<JOB>
,因此我假设文档末尾有一个结束标记。我还假设您以类似以下方式加载 XML:
$doc = [xml](Get-Content '.\samples.xml')
我猜你将信息输出到文件的方式是使用重定向运算符>
。正如你可能发现的那样,这会抹去目标文件的任何现有内容。但是,你可以使用将内容附加到文件>>
。因此,你可能会做这样的事情:
$doc.JOB.SAMPLE.SCHEME.ANALYTE > outfile.txt
$doc.JOB.SAMPLE >> outfile.txt
如果要获取属性的值,只需将该属性视为其所属元素对象上的另一个子对象即可。这会将您想要的内容打印到屏幕上;您可以根据需要重定向它:
$doc.JOB.SAMPLE.SAMPLETIME