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 Powershell xpath-获取两个属性的值_Xml_Powershell_Xpath_Text_Return - Fatal编程技术网

Xml Powershell xpath-获取两个属性的值

Xml Powershell xpath-获取两个属性的值,xml,powershell,xpath,text,return,Xml,Powershell,Xpath,Text,Return,我试图得到以下两个属性的值 和 但我只能得到一个或另一个值,不能同时得到两个值…: [xml]$xml = Get-Content "$AttributesFile" $Xml | Select-Xml -XPath "//ATTRIBUTE[@name='r_creation_date']" | foreach {$_.node.InnerXML} <![CDATA[4/7/2016 6:18:42 PM]]> <![CDATA[4/9/2016 6:18:42

我试图得到以下两个属性的值

但我只能得到一个或另一个值,不能同时得到两个值…:

   [xml]$xml = Get-Content "$AttributesFile"
   $Xml | Select-Xml -XPath "//ATTRIBUTE[@name='r_creation_date']" | foreach {$_.node.InnerXML}

<![CDATA[4/7/2016 6:18:42 PM]]>
<![CDATA[4/9/2016 6:18:42 PM]]>
[xml]$xml=获取内容“$AttributesFile”
$Xml |选择Xml-XPath”//ATTRIBUTE[@name='r_creation_date']”| foreach{$\uu.node.InnerXML}
我如何得到以下结果呢

<![CDATA[D:\test\overview_1.0.doc]]>
<![CDATA[4/7/2016 6:18:42 PM]]>
<![CDATA[D:\test\Letter.docx]]>
<![CDATA[4/9/2016 6:18:42 PM]]>

以下是我正在使用的XML:

<EXTRACT path="D:\test\">
  <DOCBASE name="xdocs" />
  <VERSION>
    <DOCUMENT name="overview.doc" chronicle_id="09028bf4807d6da5" objectId="09028bf4807d6da5" implicitVersionLabel="1.0">
      <ATTRIBUTE name="docbasePath"></ATTRIBUTE>
      <ATTRIBUTE name="exportPath"><![CDATA[D:\test\overview_1.0.doc]]></ATTRIBUTE>
      <ATTRIBUTE name="r_creation_date"><![CDATA[4/7/2016 6:18:42 PM]]></ATTRIBUTE>
      <ATTRIBUTE name="edo_creation_date"><![CDATA[nulldate]]></ATTRIBUTE>
      <ATTRIBUTE name="edo_import_date"><![CDATA[nulldate]]></ATTRIBUTE>
    </DOCUMENT>
  </VERSION>
  <VERSION>
    <DOCUMENT name="Letter.docx" chronicle_id="09028bf4807e65c5" objectId="09028bf4807e65c5" implicitVersionLabel="1.0">
      <ATTRIBUTE name="docbasePath"></ATTRIBUTE>
      <ATTRIBUTE name="exportPath"><![CDATA[D:\test\Letter.docx]]></ATTRIBUTE>
      <ATTRIBUTE name="r_creation_date"><![CDATA[4/9/2016 6:18:42 PM]]></ATTRIBUTE>
      <ATTRIBUTE name="edo_creation_date"><![CDATA[nulldate]]></ATTRIBUTE>
      <ATTRIBUTE name="edo_import_date"><![CDATA[nulldate]]></ATTRIBUTE>
    </DOCUMENT>
  </VERSION>
</EXTRACT>

尝试将xpath表达式更改为

//属性[@name='r\u creation\u date'或@name='exportPath']

尝试将xpath表达式更改为

//属性[@name='r\u creation\u date'或@name='exportPath']
可能类似

$xml | Select-Xml -XPath "//ATTRIBUTE[@name='r_creation_date']" |
    ForEach-Object {
        $_.Node.PreviousSibling.InnerXml
        $_.node.InnerXML
    }
(适用于给定的XML)

可能类似于

$xml | Select-Xml -XPath "//ATTRIBUTE[@name='r_creation_date']" |
    ForEach-Object {
        $_.Node.PreviousSibling.InnerXml
        $_.node.InnerXML
    }

(适用于给定的XML)

您应该将第二个
@name
的引号更改为
'
。否则,它将与周围的引用冲突。顺便说一句+1@zx485-你比我快了30秒!您应该将第二个
@name
的引号更改为
'
。否则,它将与周围的引用冲突。顺便说一句+1@zx485-你比我快了30秒!