首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PowerShell,如何使用多个命名空间?

使用PowerShell,如何使用多个命名空间?
EN

Stack Overflow用户
提问于 2015-05-09 04:18:10
回答 1查看 578关注 0票数 2

我想创建一个具有这样多个名称空间的XML文件。我需要在标签的开头插入正确的前缀。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<HXT:Sending xmlns:HXT="http://www.HiTooT.com/HXT-Rec">   
     <O2:Info xmlns:O2="urn:osis:names:specification:gtr:schema:xsd:Info-2" xmlns:dad="urn:osis:names:specification:gtr:schema:xsd:AggregateInfo" xmlns:dbd="urn:osis:names:specification:gtr:schema:xsd:BasicInfo">
          <dad:ID>12015</dad:ID>
          <dbd:IssueDate>05032015</dbd:IssueDate>
          <dbd:TypeCode>ORA_PF</dbd:TypeCode>   
     </O2:Info> 
</HXT:Sending>

使用此powershell代码

代码语言:javascript
复制
$XMLFilePath = "c:\tmp\test1.xml"

    #---Create empty XML File
    New-Item $XMLFilePath -Type File -Force | Out-Null

    #---Creating Base Structure
    $XMLFile = New-Object XML
    [System.XML.XMLDeclaration]$XMLDeclaration = $XMLFile.CreateXMLDeclaration("1.0", "UTF-8", "yes")
    $XMLFile.AppendChild($XMLDeclaration) | Out-Null

    #---RootObject
    $Sending = $XMLFile.CreateElement("HXT", "Sending", "http://www.HiTooT.com/HXT-Rec")
    $XMLFile.AppendChild($Sending)


    #Order node
    $Info = $XMLFile.CreateElement("Info"); 

    $Info.SetAttribute("xmlns:O2", "urn:osis:names:specification:gtr:schema:xsd:Info-2")
    $Info.SetAttribute("xmlns:dad", "urn:osis:names:specification:gtr:schema:xsd:AggregateInfo")
    $Info.SetAttribute("xmlns:dbd", "urn:osis:names:specification:gtr:schema:xsd:BasicInfo")

    $Sending.AppendChild($Info)
    #---

    $ID    = $XMLFile.CreateElement("ID")
    $ID.InnerText    = "12015"
    $Info.AppendChild($ID)

    $IssueDate    = $XMLFile.CreateElement("cbc:IssueDate")
    $IssueDate.InnerText    = "05032015" 
    $Info.AppendChild($IssueDate)

    $TypeCode    = $XMLFile.CreateElement("TypeCode")
    $TypeCode.InnerText    = "ORA_PF"
    $Info.AppendChild($TypeCode)

    $XMLFile.Save($XMLFilePath);

    notepad $XMLFilePath

只能这么做

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<HXT:Sending xmlns:HXT="http://www.HiTooT.com/HXT-Rec">
  <Info xmlns:O2="urn:osis:names:specification:gtr:schema:xsd:Info-2" xmlns:dad="urn:osis:names:specification:gtr:schema:xsd:AggregateInfo" xmlns:dbd="urn:osis:names:specification:gtr:schema:xsd:BasicInfo">
    <ID>12015</ID>
    <IssueDate>05032015</IssueDate>
    <TypeCode>ORA_PF</TypeCode>
  </Info>
</HXT:Sending>

如何添加正确的前缀?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-09 07:03:04

您是否尝试过像这样创建$info元素:

代码语言:javascript
复制
#Order node
$Info = $XMLFile.CreateElement("O2", "Info", "urn:osis:names:specification:gtr:schema:xsd:Info-2")

对我来说:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<HXT:Sending xmlns:HXT="http://www.HiTooT.com/HXT-Rec">
  <O2:Info xmlns:O2="urn:osis:names:specification:gtr:schema:xsd:Info-2" xmlns:dad="urn:osis:names:specification:gtr:schema:xsd:AggregateInfo" xmlns:dbd="urn:osis:names:specification:gtr:schema:xsd:BasicInfo">
    <ID>12015</ID>
    <IssueDate>05032015</IssueDate>
    <TypeCode>ORA_PF</TypeCode>
  </O2:Info>
</HXT:Sending>

更新以解释如何为内部标记加上前缀:

您可以对内部标记使用相同的调用,属性将不会因为它在父节点中出现一次而被恢复。

代码语言:javascript
复制
$ID = $XMLFile.CreateElement("O2", "ID", "urn:osis:names:specification:gtr:schema:xsd:Info-2")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30135937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档