Powershell无法设置xmlelement的内部文本

时间:2013-10-09 10:01:36

标签: xml powershell sharepoint-2007

我尝试创建一个脚本来更新sharepoint中的webpart,我找到了一些例子,但我有一个xml的问题,我必须传递给web部分。

仅供注意,我使用的powershell是1.0。

$xmlDoc = New-Object xml;                
$newXmlElement = $xmlDoc.CreateElement("HtmlContent");       
$newXmlElement.InnerText="SomeValue";

所以这段剧本在哪里打破,我得到一个错误说:

  

在此对象上找不到属性'InnerText';确保它   存在且可设定。

我真的不知道为什么它不起作用,任何人都有任何想法?

我尝试在Windows Powershell命令行中执行此行,当我尝试设置innertext时,它会抛出此红色错误消息。

2 个答案:

答案 0 :(得分:2)

我终于找到了一种方法,似乎在PowerShell v1.0中,对象System.Xml.XmlElement没有像InnerText等属性,所以我的方式如下:

 $xmlDoc=New-Object System.Xml.XmlDocument;             
 $xmlElement=$xmlDoc.CreateElement("HtmlElement"); 
 $xmlText = $xmlDoc.CreateTextNode($cewpNewContent)
 $xmlElement.AppendChild($xmlText);

我希望这可能对其他人有用。

答案 1 :(得分:0)

尝试使用点表示法将值分配给现有元素时遇到的错误是因为点表示法访问了您所使用的XmlElement中的XmlNodeXmlElement没有InnerText的{​​{1}}。

有关如何使用InnerText创建和分配值的示例

XmlNode

循环和节点访问的示例

$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)

XmlDocument.CreateNode

使用指定的节点类型,名称和NamespaceURI创建XmlNode(示例中NamespaceURI为null)。

XmlNode.AppendChild(XmlNode)

将指定的节点添加到该节点的子节点列表的末尾

XmlNode

XmlElement