当您尝试使用点符号为现有元素赋值时出现的错误是因为您正在访问点XmlElement
符号XmlNode
。XmlElement
没有在InnerText
哪里XmlNode
。
关于如何使用 InnerText 创建和分配值的示例
$xmlDoc = New-Object xml;
$newXmlElement = $xmlDoc.CreateNode("element", "HtmlContent", "")
$newXmlElement.InnerText = "SomeValue"
$secondXmlElement = $xmlDoc.CreateNode("element", "HtmlContentChild", "")
$secondXmlElement.InnerText = "NewValue"
$newXmlElement.AppendChild($secondXmlElement)
$xmlDoc.AppendChild($newXmlElement)
循环和节点访问示例
foreach($node in $nodes) {
if ($node.element -ne $null) {
$node.element.InnerText = "this will throw error" # generates the error
$node.element = "this is correct" # Correct way to add InnerText
}
else {
$elementToAdd = $xmlDoc.CreateNode("element", "element", "")
$elementToAdd.InnerText = "This is correct"
$node.AppendChild($elementToAdd)
}
}
XmlDocument.CreateNode
创建具有指定节点类型、名称和 NamespaceURI 的 XmlNode(在您的示例中 NamespaceURI 为空)。
XmlNode.AppendChild(XmlNode)
将指定节点添加到该节点的子节点列表的末尾
xml节点
Xml元素