0

我正在尝试实现一个场景,即使输入中不存在该元素,我也可以在输出中确定该元素。

例如:如果我的输入是

<?xml version="1.0" encoding="UTF-8"?>
<getMyClsScheduleResponse>
    <RegisteredClass>
        <ClassNumber>30788</ClassNumber>
    </RegisteredClass>
    <RegisteredClass>
        <ClassNumber>30524</ClassNumber>
        <Instructor>
            <InstructorName>Bernstein,Dennis S</InstructorName>
            <LastName>Bernstein</LastName>
            <FirstName>Dennis</FirstName>
            <Uniqname>DSBAERO</Uniqname>
            <InstructorRole>Primary Instructor</InstructorRole>
        </Instructor>
    </RegisteredClass>
    <RegisteredClass>
        <ClassNumber>11786</ClassNumber>
        <Instructor>
            <InstructorName>Gluskich,Kari E</InstructorName>
            <LastName>Gluskich</LastName>
            <FirstName>Kari</FirstName>
            <Uniqname>KARI</Uniqname>
            <InstructorRole>Secondary Instructor</InstructorRole>
        </Instructor>
        <Instructor>
            <InstructorName>Grocech,Marian Renee</InstructorName>
            <LastName>Grocech</LastName>
            <FirstName>Marian</FirstName>
            <Uniqname>MARIANGR</Uniqname>
            <InstructorRole>Primary Instructor</InstructorRole>
        </Instructor>
    </RegisteredClass>
</getMyClsScheduleResponse>

我期待输出

<?xml version="1.0" encoding="UTF-8"?>
<getMyClsScheduleResponse>
    <RegisteredClasses>
        <Title>30788</Title>
        <Instructor/>
    </RegisteredClasses>
    <RegisteredClasses>
        <Title>30524</Title>
        <Instructor>
            <Name>Bernstein,Dennis S</Name>
            <Role>Primary Instructor</Role>
            <Email>DSBAERO</Email>
        </Instructor>
    </RegisteredClasses>
    <RegisteredClasses>
        <Title>11786</Title>
        <Instructor>
            <Name>Gluskich,Kari E</Name>
            <Role>Secondary Instructor</Role>
            <Email>KARI</Email>
        </Instructor>
        <Instructor>
            <Name>Grocech,Marian Renee</Name>
            <Role>Primary Instructor</Role>
            <Email>MARIANGR</Email>
        </Instructor>
    </RegisteredClasses>
</getMyClsScheduleResponse>

我正在尝试使用 altova mapforce 来实现这一目标。我已经使用了存在和不存在的功能,但它并没有给我带来有利的结果。

请看映射 使用存在函数映射

但结果并不如预期。

<?xml version="1.0" encoding="UTF-8"?>
<getMyClsScheduleResponse >
    <RegisteredClasses>
        <Title>30788</Title>
        <Instructor/>
    </RegisteredClasses>
    <RegisteredClasses>
        <Title>30524</Title>
        <Instructor>
            <Name>Bernstein,Dennis S</Name>
            <Role>Primary Instructor</Role>
            <Email>DSBAERO</Email>
        </Instructor>
    </RegisteredClasses>
    <RegisteredClasses>
        <Title>11786</Title>
        <Instructor>
            <Name>Gluskich,Kari E</Name>
            <Name>Grocech,Marian Renee</Name>
            <Role>Secondary Instructor</Role>
            <Role>Primary Instructor</Role>
            <Email>KARI</Email>
            <Email>MARIANGR</Email>
        </Instructor>
    </RegisteredClasses>
</getMyClsScheduleResponse>

有人可以帮我做映射吗?

谢谢克兰蒂

4

1 回答 1

0

我也发生过类似的事情。在我找到更好的方法之前,这里有一个用户定义函数,如果输入值为空,我同时使用它来强制输出一个空节点。将节点输出连接到 Instructor 节点,将代码输出连接到您的值。如果需要,您可以将代码输出替换为复杂类型。

例子

于 2015-07-17T14:26:56.437 回答