我有以下两行代码:
Dim node As XmlNode = xDoc.SelectSingleNode("//response/agentStatusList/agentStatus/protectableVolumes/protectableVolume/metrics/lastWriteTime")
MsgBox(node.FirstChild.Value)
我希望获得lastWriteTime
的第一个实例的值,它应该是2011-10-13T10:48:48.3833771-04:00
,但代码只会弹出一个空字符串。很抱歉这篇文章很重要,但这里是整个XML文件供参考。任何人都可以看到为什么这不起作用,或者给我一个如何让它以其他方式工作的例子?
<responses xmlns="replayc.Xml.Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<response>
<commandName>GetAgentStatus</commandName>
<errorMessage i:nil="true"/>
<message>The GetSourceStatus is executed successfully.</message>
<responseCode>0</responseCode>
<stackTrace i:nil="true"/>
<time>2011-10-13T10:48:48.3364607-04:00</time>
<agentStatusList>
<agentStatus>
<allowAccessDuringRollbackFlag>true</allowAccessDuringRollbackFlag>
<areDriversLoaded>true</areDriversLoaded>
<backupWindowDuration>0</backupWindowDuration>
<backupWindowStartTime>0001-01-01T00:00:00</backupWindowStartTime>
<checksumCheckInProgress>false</checksumCheckInProgress>
<checksumCheckJobSchedule>
<recurrence>Nightly</recurrence>
<weeklyDayOfWeek>Sunday</weeklyDayOfWeek>
</checksumCheckJobSchedule>
<clusterName/>
<continuousSourceRollbackInfo>
<enabled>false</enabled>
<finishTime>0001-01-01T00:00:00</finishTime>
<hotStandbyName/>
<hotStandbyTargetIp/>
<inProgress>false</inProgress>
<lastReplicationTime>0001-01-01T00:00:00</lastReplicationTime>
<percentDone>0</percentDone>
<recoveryPointTimeStamp>0001-01-01T00:00:00</recoveryPointTimeStamp>
<rollbackVolumeInfoMapDict/>
<startTime>0001-01-01T00:00:00</startTime>
</continuousSourceRollbackInfo>
<currentRpExportStatus>
<exportInProgress>false</exportInProgress>
<exportStatusString>Off</exportStatusString>
<finishTime>0001-01-01T00:00:00</finishTime>
<isDifferentialExport>false</isDifferentialExport>
<percentDone>0</percentDone>
<recoveryPointTimeStamp>0001-01-01T00:00:00</recoveryPointTimeStamp>
<startTime>0001-01-01T00:00:00</startTime>
</currentRpExportStatus>
<currentVmExportStatus>
<exportInProgress>false</exportInProgress>
<exportStatusString>Off</exportStatusString>
<finishTime>0001-01-01T00:00:00</finishTime>
<isDifferentialExport>false</isDifferentialExport>
<percentDone>0</percentDone>
<recoveryPointTimeStamp>0001-01-01T00:00:00</recoveryPointTimeStamp>
<startTime>0001-01-01T00:00:00</startTime>
</currentVmExportStatus>
<edbsAndStatuses/>
<enableLogTruncation>false</enableLogTruncation>
<errorMsg/>
<exchangeVersion>None</exchangeVersion>
<forceDismountFlag>false</forceDismountFlag>
<forceLogTruncation>false</forceLogTruncation>
<haFeatures>ExchangeHaFeatureNone</haFeatures>
<ipAddress>10.28.95.81</ipAddress>
<logPath>e:\tevorepository\appassure</logPath>
<name>appassure</name>
<newestLastChanged>2011-10-13T10:48:48.2739055-04:00</newestLastChanged>
<policyFlagsEdb>0</policyFlagsEdb>
<policyFlagsSql>0</policyFlagsSql>
<port>8004</port>
<protectableVolumes>
<protectableVolume>
<isExchangeInstallVolume>false</isExchangeInstallVolume>
<isSqlInstallVolume>false</isSqlInstallVolume>
<metrics>
<bytesTransfered>0</bytesTransfered>
<lastWriteTime>2011-10-13T10:48:48.3833771-04:00</lastWriteTime>
<totalBytesToTransfer>0</totalBytesToTransfer>
<transferFinishTime>2011-10-13T10:48:48.3833771-04:00</transferFinishTime>
<transferStartTime>2011-10-13T10:48:48.3833771-04:00</transferStartTime>
<volumeName/>
</metrics>
<name i:nil="true"/>
<sqlInstances/>
<storageGroups/>
<tevoDriverGuid>301fbed8-de11-11e0-8b0f-76c786fecbc5</tevoDriverGuid>
<tevoDriverGuidStr>301fbed8-de11-11e0-8b0f-76c786fecbc5</tevoDriverGuidStr>
<uniqueId>C:</uniqueId>
<validForProtection>true</validForProtection>
</protectableVolume>
<protectableVolume>
<isExchangeInstallVolume>false</isExchangeInstallVolume>
<isSqlInstallVolume>false</isSqlInstallVolume>
<metrics>
<bytesTransfered>0</bytesTransfered>
<lastWriteTime>2011-10-13T10:48:48.3833771-04:00</lastWriteTime>
<totalBytesToTransfer>0</totalBytesToTransfer>
<transferFinishTime>2011-10-13T10:48:48.3833771-04:00</transferFinishTime>
<transferStartTime>2011-10-13T10:48:48.3833771-04:00</transferStartTime>
<volumeName/>
</metrics>
<name i:nil="true"/>
<sqlInstances/>
<storageGroups/>
<tevoDriverGuid>301fbed7-de11-11e0-8b0f-76c786fecbc5</tevoDriverGuid>
<tevoDriverGuidStr>301fbed7-de11-11e0-8b0f-76c786fecbc5</tevoDriverGuidStr>
<uniqueId>C:\Windows\SRPPartition</uniqueId>
<validForProtection>true</validForProtection>
</protectableVolume>
<protectableVolume>
<isExchangeInstallVolume>false</isExchangeInstallVolume>
<isSqlInstallVolume>false</isSqlInstallVolume>
<metrics>
<bytesTransfered>0</bytesTransfered>
<lastWriteTime>2011-10-13T10:48:48.3833771-04:00</lastWriteTime>
<totalBytesToTransfer>0</totalBytesToTransfer>
<transferFinishTime>2011-10-13T10:48:48.3833771-04:00</transferFinishTime>
<transferStartTime>2011-10-13T10:48:48.3833771-04:00</transferStartTime>
<volumeName/>
</metrics>
<name i:nil="true"/>
<sqlInstances/>
<storageGroups/>
<tevoDriverGuid>301fbef5-de11-11e0-8b0f-76c786fecbc5</tevoDriverGuid>
<tevoDriverGuidStr>301fbef5-de11-11e0-8b0f-76c786fecbc5</tevoDriverGuidStr>
<uniqueId>E:</uniqueId>
<validForProtection>true</validForProtection>
</protectableVolume>
<protectableVolume>
<isExchangeInstallVolume>false</isExchangeInstallVolume>
<isSqlInstallVolume>false</isSqlInstallVolume>
<metrics>
<bytesTransfered>0</bytesTransfered>
<lastWriteTime>2011-10-13T10:48:48.3833771-04:00</lastWriteTime>
<totalBytesToTransfer>0</totalBytesToTransfer>
<transferFinishTime>2011-10-13T10:48:48.3833771-04:00</transferFinishTime>
<transferStartTime>2011-10-13T10:48:48.3833771-04:00</transferStartTime>
<volumeName/>
</metrics>
<name i:nil="true"/>
<sqlInstances/>
<storageGroups/>
<tevoDriverGuid>b690c188-e454-11e0-a2db-76c786fecbc5</tevoDriverGuid>
<tevoDriverGuidStr>b690c188-e454-11e0-a2db-76c786fecbc5</tevoDriverGuidStr>
<uniqueId>F:</uniqueId>
<validForProtection>true</validForProtection>
</protectableVolume>
</protectableVolumes>
<protectionGroups>
<protectionGroup>
<metrics>
<protectableVolumeMetrics/>
<transferStatus>Unknown</transferStatus>
</metrics>
<name>VolsWithInterval10080Minutes</name>
<policyFlagsEdb>None</policyFlagsEdb>
<policyFlagsSql>None</policyFlagsSql>
<protectionInterval>P7D</protectionInterval>
<volumes>
<protectableVolumeContractLite>
<uniqueId>C:</uniqueId>
</protectableVolumeContractLite>
</volumes>
</protectionGroup>
</protectionGroups>
<reachable>true</reachable>
<remountSqlFlag>true</remountSqlFlag>
<remountStorageGroupsFlag>true</remountStorageGroupsFlag>
<replicatedLogPath/>
<role>Protected</role>
<rollbackInProgress>false</rollbackInProgress>
<rollupInProgress>false</rollupInProgress>
<rpExportSettings>
<enableExports>false</enableExports>
<exportStartDateTime>0001-01-01T00:00:00</exportStartDateTime>
<lastExportedRpTimeStamp>0001-01-01T00:00:00</lastExportedRpTimeStamp>
<lastPollDateTime>0001-01-01T00:00:00</lastPollDateTime>
<secondsTillNextPoll>PT0S</secondsTillNextPoll>
<suspended>false</suspended>
<timeBetweenUpdates>PT0S</timeBetweenUpdates>
</rpExportSettings>
<snapStartDateTime>0001-01-01T00:00:00</snapStartDateTime>
<sourceLicenseInfo>
<appMirrorDisplayName>High Availability</appMirrorDisplayName>
<base64License>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</base64License>
<companyName>LabTech</companyName>
<compressionDisplayName>Compression</compressionDisplayName>
<deduplicationDisplayName>Deduplication</deduplicationDisplayName>
<dpmEditionDisplayName>DPM Edition (Only use for MailRetriever for DPM)</dpmEditionDisplayName>
<exchangePackDisplayName>Replay for Exchange</exchangePackDisplayName>
<expired>false</expired>
<expiresInMilliseconds>4147753105</expiresInMilliseconds>
<exportToFolderDisplayName>Rescue Image</exportToFolderDisplayName>
<hyperVDisplayName>Replay for HyperV host</hyperVDisplayName>
<invalidMsg/>
<isAppMirror>true</isAppMirror>
<isCompression>true</isCompression>
<isDeduplication>true</isDeduplication>
<isDpmEdition>false</isDpmEdition>
<isExchangePack>true</isExchangePack>
<isExportToFolder>true</isExportToFolder>
<isHyperV>true</isHyperV>
<isLiveReplay>true</isLiveReplay>
<isOffsiteBackup>true</isOffsiteBackup>
<isReplayMirror>true</isReplayMirror>
<isRraEnabled>true</isRraEnabled>
<isSQLPack>true</isSQLPack>
<isSnapshotDailyEnabled>false</isSnapshotDailyEnabled>
<isSnapshotHourly>false</isSnapshotHourly>
<isTrial>false</isTrial>
<licenseExpireDateTime>2012-08-04T23:59:59-04:00</licenseExpireDateTime>
<licenseStartDateTime>2011-08-04T00:00:00-04:00</licenseStartDateTime>
<licenseValid>true</licenseValid>
<licenseeEmail>dmccallum@labtech.com</licenseeEmail>
<licenseeName>Drew McCallum</licenseeName>
<liveReplayDisplayName>Live Replay</liveReplayDisplayName>
<numDataStoresLicensed>0</numDataStoresLicensed>
<numMailboxesLicensed>0</numMailboxesLicensed>
<offsiteBackupDisplayName>Replay Server Option - allows distributed cores</offsiteBackupDisplayName>
<options xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<a:KeyValueOfstringstring>
<a:Key>option-compression</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
<a:KeyValueOfstringstring>
<a:Key>option-deduplication</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
<a:KeyValueOfstringstring>
<a:Key>option-exchange</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
<a:KeyValueOfstringstring>
<a:Key>option-exportToFolder</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
<a:KeyValueOfstringstring>
<a:Key>option-hyperV</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
<a:KeyValueOfstringstring>
<a:Key>option-liveReplay</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
<a:KeyValueOfstringstring>
<a:Key>option-offsiteBackup</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
<a:KeyValueOfstringstring>
<a:Key>option-physicalStandby</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
<a:KeyValueOfstringstring>
<a:Key>option-recoverAnywhere</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
<a:KeyValueOfstringstring>
<a:Key>option-replayMirror</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
<a:KeyValueOfstringstring>
<a:Key>option-sql</a:Key>
<a:Value/>
</a:KeyValueOfstringstring>
</options>
<optionsDisplayNames xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<a:string>Compression</a:string>
<a:string>Deduplication</a:string>
<a:string>Replay for Exchange</a:string>
<a:string>Rescue Image</a:string>
<a:string>Replay for HyperV host</a:string>
<a:string>Live Replay</a:string>
<a:string>Replay Server Option - allows distributed cores</a:string>
<a:string>High Availability</a:string>
<a:string>Restore to Dissimilar Hardware Option</a:string>
<a:string>Off-Site Replication Option</a:string>
<a:string>Replay for SQL</a:string>
</optionsDisplayNames>
<orderDateTime>2011-08-04T16:46:13.5985502-04:00</orderDateTime>
<orderNumber/>
<products>
<product>
<displayName>Replay for Windows Server</displayName>
<id>product-agent</id>
<majorVersion>4</majorVersion>
<minorVersion>5</minorVersion>
</product>
<product>
<displayName>MailRetriever</displayName>
<id>product-dsm</id>
<majorVersion>4</majorVersion>
<minorVersion>5</minorVersion>
</product>
</products>
<replayMirrorDisplayName>Off-Site Replication Option</replayMirrorDisplayName>
<rraEnabledDisplayName>Restore to Dissimilar Hardware Option</rraEnabledDisplayName>
<snapshotDailyDisplayName>Daily Snapshots Only</snapshotDailyDisplayName>
<snapshotHourlyDisplayName>Hourly Snapshots Only</snapshotHourlyDisplayName>
<sqlPackDisplayName>Replay for SQL</sqlPackDisplayName>
<thisProduct>
<displayName>Replay for Windows Server</displayName>
<id>product-agent</id>
<majorVersion>4</majorVersion>
<minorVersion>5</minorVersion>
</thisProduct>
<timeRemaining>-P296DT13H11M10.6322617S</timeRemaining>
<trialDisplayName>Make Key a Trial</trialDisplayName>
</sourceLicenseInfo>
<sourceRollupPolicy>
<daysToKeepAllSnaps>1</daysToKeepAllSnaps>
<daysToKeepDailySnaps>7</daysToKeepDailySnaps>
<daysToKeepHourlySnaps>2</daysToKeepHourlySnaps>
<monthsToKeepMonthlySnaps>12</monthsToKeepMonthlySnaps>
<schedule>
<recurrence>Nightly</recurrence>
<weeklyDayOfWeek>Sunday</weeklyDayOfWeek>
</schedule>
<weeksToKeepWeeklySnaps>5</weeksToKeepWeeklySnaps>
</sourceRollupPolicy>
<sqlInstances/>
<sqlVersion>None</sqlVersion>
<statusInfoAvailable>true</statusInfoAvailable>
<storageGroups/>
<totalPhysicalRamBytes>1069142016</totalPhysicalRamBytes>
<version>4.6.1.34188</version>
<volsAndStatuses/>
<wallClockDateTime>2011-10-13T10:48:44.6144263-04:00</wallClockDateTime>
</agentStatus>
</agentStatusList>
</response>
</responses>
答案 0 :(得分:3)
您的节点都在非空命名空间中,并且您没有在XPath查询中指定此命名空间。这就是为什么它一无所获。
示例:
Dim resolver = New XmlNamespaceManager(xDoc.NameTable)
resolver.AddNamespace("c", "replayc.Xml.Contracts")
Dim node = xDoc.SelectSingleNode("//c:response/c:agentStatusList/c:agentStatus/c:protectableVolumes/c:protectableVolume/c:metrics/c:lastWriteTime", resolver)
您在XPath文本中使用的名称空间前缀完全是任意的,只要它映射到的URI与文档中的名称空间URI匹配。
答案 1 :(得分:0)
您的XML文档具有默认命名空间(xmlns="replayc.Xml.Contracts"
)。
您必须在发出XPath查询之前注册该命名空间,当然您必须在查询本身中使用该命名空间。
Dim nsMgr As New XmlNamespaceManager(xDoc)
nsMgr.AddNamespace("c", "replayc.Xml.Contracts")
Dim xpath As String = "//c:response/c:agentStatusList/c:agentStatus/c:protectableVolumes/c:protectableVolume/c:metrics/c:lastWriteTime"
Dim node As XmlNode = xDoc.SelectSingleNode(xpath, nsMgr)
MsgBox(node.FirstChild.Value)