【问题标题】:XMLStartlet is not updating package.xml fileXMLStartlet 没有更新 package.xml 文件
【发布时间】:2020-09-11 07:54:18
【问题描述】:

我想创建 Salesforce Dynamic package.xml 文件。我遵循了这个(apexandbeyond.wordpress.com/2017/03/15/dynamic-package-xml-generation/)博客中提到的过程,它既不更新也不在xml文件中插入dat。我正在尝试以下方式,但我不适合我。请帮我解决这个问题。

xmlstarlet edit -L --subnode "/Package/types[name='ApexClass']" --type elem -n members -v "LoginBroker" testpackage.xml > edipackage.xml

xmlstarlet edit --insert /Package -t attr -n xmlns -v "http://soap.sforce.com/2006/04/metadata" testpackage.xml > edipackage.xml

原始文件:testpackage.xml

<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>ApexClass</name>
</types>
<types>
<members>*</members>
<name>ApexComponent</name>
</types>
<types>
<members>*</members>
<name>ApexPage</name>
</types>
<version>48.0</version>
</Package>

预期结果:

<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>LoginBroker</members>
<name>ApexClass</name>
</types>
<types>
<version>48.0</version>
</Package>

【问题讨论】:

    标签: xml-namespaces xmlstarlet


    【解决方案1】:

    如果我理解正确,您正在寻找这样的东西:

    xmlstarlet edit  -N x="http://soap.sforce.com/2006/04/metadata"\
       -u "//x:Package//x:types[x:name[1][text()='ApexClass']]/x:members" \
       -v 'LoginBroker' \
       testpackage.xml > edipackage.xml
    

    【讨论】:

    • 这真的很有帮助,但我希望上述场景用于循环迭代。下面是迭代循环的示例。你能帮助这个场景吗? $TYPENAME: ApexClass $ENTITY: LoginBroker $TYPENAME: ApexPage $ENTITY: AnnuityVisualizerWrapper ======================= xmlstarlet edit -N x="soap.sforce.com/2006/04/metadata" \ -u "//x:Package//x:types[x:name[1][text()=$TYPENAME]]/x:members" \ -v $ENTITY\ testpackage.xml > edipackage.xml跨度>
    • @Saranya 我不确定我是否理解您的问题,但无论如何,根据 SO 政策,您应该将其作为单独的问题发布。
    • 感谢您的回复。我发布了一个带有详细描述的新请求stackoverflow.com/questions/62017095/…。请在这里帮助我。
    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多