Xml 使用PowerShell从manifest.xsf文件提取数据

Xml 使用PowerShell从manifest.xsf文件提取数据,xml,powershell,Xml,Powershell,我正在尝试提取有关应用于许多InfoPath表单的规则的信息,我正在使用Powershell进行此操作 我已经解包了template.xsn文件,找到了存储此数据的manifest.xsf文件 使用Powershell[xml]$ProjectXmlFile=Get Content manifest.xsf获取xml数据,我正在努力正确识别节点 使用“xsf:”前体标识节点,例如: <xsf:submit caption="Submit" disableMenuItem="no" onAf

我正在尝试提取有关应用于许多InfoPath表单的规则的信息,我正在使用Powershell进行此操作

我已经解包了
template.xsn
文件,找到了存储此数据的
manifest.xsf
文件

使用Powershell
[xml]$ProjectXmlFile=Get Content manifest.xsf
获取xml数据,我正在努力正确识别节点

使用“
xsf:
”前体标识节点,例如:

<xsf:submit caption="Submit" disableMenuItem="no" onAfterSubmit="close" showStatusDialog="no">
    <xsf:errorMessage>The form cannot be submitted because of an error.</xsf:errorMessage>
    <xsf:davAdapter name="SharePoint Library Submit" submitAllowed="yes" overwriteAllowed="no">
        <xsf:folderURL value="../"></xsf:folderURL>
        <xsf:fileName value="my:Submit/my:ref" valueType="expression"></xsf:fileName>
    </xsf:davAdapter>
</xsf:submit>
或者我无法访问这些节点还有其他原因吗?

通过将属性设置为
$false
值,可以禁用命名空间支持

$x = @'
<xsf:submit caption="Submit" disableMenuItem="no" onAfterSubmit="close" showStatusDialog="no">
    <xsf:errorMessage>The form cannot be submitted because of an error.</xsf:errorMessage>
    <xsf:davAdapter name="SharePoint Library Submit" submitAllowed="yes" overwriteAllowed="no">
        <xsf:folderURL value="../"></xsf:folderURL>
        <xsf:fileName value="my:Submit/my:ref" valueType="expression"></xsf:fileName>
    </xsf:davAdapter>
</xsf:submit>
'@
$xml = New-Object -TypeName System.Xml.XmlDocument
$sr = New-Object -TypeName System.IO.StringReader $x
$xtr = New-Object -TypeName System.Xml.XmlTextReader $sr
$xtr.Namespaces = $false
$xml.Load($xtr)
$xml.'xsf:submit'.'xsf:errorMessage'
通过将属性设置为
$false
值,可以禁用命名空间支持

$x = @'
<xsf:submit caption="Submit" disableMenuItem="no" onAfterSubmit="close" showStatusDialog="no">
    <xsf:errorMessage>The form cannot be submitted because of an error.</xsf:errorMessage>
    <xsf:davAdapter name="SharePoint Library Submit" submitAllowed="yes" overwriteAllowed="no">
        <xsf:folderURL value="../"></xsf:folderURL>
        <xsf:fileName value="my:Submit/my:ref" valueType="expression"></xsf:fileName>
    </xsf:davAdapter>
</xsf:submit>
'@
$xml = New-Object -TypeName System.Xml.XmlDocument
$sr = New-Object -TypeName System.IO.StringReader $x
$xtr = New-Object -TypeName System.Xml.XmlTextReader $sr
$xtr.Namespaces = $false
$xml.Load($xtr)
$xml.'xsf:submit'.'xsf:errorMessage'
The form cannot be submitted because of an error.