Я пытаюсь извлечь информацию о правилах, которые применяются к ряду форм 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>
Как идентифицировать эти узлы, чтобы вывести информацию как обычные данные XML (т. Е. Если узлы не имели префикса «xsf:» к ним)?
Вот что я пытался использовать:
foreach ($DataQuery in $ProjectXmlFile.'xsf:xDocumentClass'.'xsf:dataObjects'.'xsf:dataObject'.'xsf:query'.'xsf:sharepointListAdapterRW')
{
Write-Host "DataQuery.name = $($DataQuery.'xsf:name')"
}
Или есть еще одна причина, по которой я не могу получить доступ к этим узлам?