【问题标题】:Loading XML string with PowerShell使用 PowerShell 加载 XML 字符串
【发布时间】:2011-04-25 12:35:22
【问题描述】:

我已经使用

定义了一个 XML 字符串
$str = "<a><b></b></a>"

现在我想将它加载到一个 [xml] 变量中,以便能够操纵它的节点等。 下面的行导致错误...

$str = [xml]"<a><b></b></a>"

我该怎么做?

【问题讨论】:

  • 我没有看到该行有任何错误。你以前有没有强输入过 $str 变量之类的?尝试将类型放在变量之前以(重新)强烈键入变量: [xml]$str = "" (或 [xml]$str = [xml]" ")
  • 这里也一样。正如您在上面输入的那样,它对我有用。

标签: xml powershell


【解决方案1】:

您问题中的代码似乎对我有用。我刚刚在我的字符串中添加了test 以显示我可以访问该值,但它也应该在没有它的情况下工作。

Full Image

转换字符串也对我有用:

Full Image


...我用你的字符串运行它并且效果很好... Full Image

【讨论】:

  • 一切都是关于从 FILE 加载 XML。我想从 STRING 加载它。
  • 你如何发布你得到的错误,因为我能够在我的 powershell 中加载字符串就好了。对大写也放心,这些文章中的参考仍然适用(看看大写有多烦人)。我会为你更新我的问题
【解决方案2】:

试试这个

$xmlcontent = variable which holds xml data in string
$xml = New-Object -TypeName System.Xml.XmlDocument
$xml.LoadXml($xmlcontent)

【讨论】:

    【解决方案3】:

    为了搜索者的利益,如果您有一个包含格式(而不是直接在根节点处)信息的 xml 顶行,您需要在转换之前删除顶行

    例如

    <?xml version="1.0" encoding="utf-8"?>
    <Courses>
      <CourseEntry Type="Mandatory" Name="Math"/>
      <CourseEntry Type="Mandatory" Name="Coding" />
      <CourseEntry Type="Optional" Name="Economics" />
      <CourseEntry Type="Optional" Name="History" />
    </Courses>
    

    要求:

    $xmlFile = Get-Content "*.xml"
    $xmlFileMinusFormatData = $xmlFile[1..($xmlFile.Length - 1)] #we need to remove the first line
    $usableXml = [xml]$xmlFileMinusFormatData # Convert to xml for easy handling
    $usableXml.Courses.CourseEntry.Count # just a count of rows
    

    【讨论】:

    • 很酷,您是如何以编程方式删除第一行的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多