Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to insert data inside a tag with attributes without inserting the child element #32

Open
tshaji opened this issue Mar 2, 2023 · 2 comments

Comments

@tshaji
Copy link

tshaji commented Mar 2, 2023

Hi Team,
We have a requirement wherein we need to have an attribute inside a tag and that tag should include a string, but without any child elements.
The result should look something similar to below.

I0VYVC1YLUtFWTpNRVRIT0Q9U0FNUExFLUFFUyxLRVlJRD0weDEwMDAwMDAwMTAwMDEwMDAxMDAwMTAwMDAwMDAwMDAxLFVSST0iZGF0YTp0ZXh0L3BsYWluO2Jhc2U2NCxBQUFBUFhCemMyZ0FBQUFBN2UrTHFYbldTczZqeUNmYzFSMGg3UUFBQUIwYURYZHBaR1YyYVc1bFgzUmxjM1FpREhSbGMzUWdZMjl1ZEdWdWRBPT0iLEtFWUZPUk1BVD0idXJuOnV1aWQ6ZWRlZjhiYTktNzlkNi00YWNlLWEzYzgtMjdkY2Q1MWQyMWVkIixLRVlGT1JNQVRWRVJTSU9OUz0iMSI=
I0VYVC1YLVNFU1NJT04tS0VZOk1FVEhPRD1TQU1QTEUtQUVTLFVSST0iZGF0YTp0ZXh0L3BsYWluO2Jhc2U2NCxBQUFBUFhCemMyZ0FBQUFBN2UrTHFYbldTczZqeUNmYzFSMGg3UUFBQUIwYURYZHBaR1YyYVc1bFgzUmxjM1FpREhSbGMzUWdZMjl1ZEdWdWRBPT0iLEtFWUZPUk1BVD0idXJuOnV1aWQ6ZWRlZjhiYTktNzlkNi00YWNlLWEzYzgtMjdkY2Q1MWQyMWVkIixLRVlGT1JNQVRWRVJTSU9OUz0iMSI=

`We have the below code

@xmlelement({
localName: 'HLSSignalingData',
prefix: CPIX_NS
})
export class HLSSignalingData extends XmlObject {
@XmlAttribute({
localName: 'playlist'
})
public playlist?: string;

@XmlChildElement({})
public hls?: string;

}
@xmlelement({
localName: 'DRMSystem',
namespaceURI: CPIX_NS_URI,
prefix: CPIX_NS
})
export class DRMSystem extends XmlObject {
@XmlChildElement({
localName: 'HLSSignalingData',
prefix: CPIX_NS,
parser: HLSSignalingData
})
public hLSSignalingData?: HLSSignalingData;
}
`
Below is what we are getting right now with the above code snippet.

I0VYVC1YLVNFU1NJT04tS0VZOk1FVEhPRD1TQU1QTEUtQUVTLFVSST0iZGF0YTp0ZXh0L3BsYWluO2Jhc2U2NCxBQUFBUFhCemMyZ0FBQUFBN2UrTHFYbldTczZqeUNmYzFSMGg3UUFBQUIwYURYZHBaR1YyYVc1bFgzUmxjM1FpREhSbGMzUWdZMjl1ZEdWdWRBPT0iLEtFWUZPUk1BVD0idXJuOnV1aWQ6ZWRlZjhiYTktNzlkNi00YWNlLWEzYzgtMjdkY2Q1MWQyMWVkIixLRVlGT1JNQVRWRVJTSU9OUz0iMSI=

Is it possible to include data inside a tag with attributes without inserting the child element. In this case the additional tag added is

@microshine
Copy link
Contributor

Your script doesn't have any XML example you need to get. I took example from this link https://docs.unified-streaming.com/documentation/drm/cpix_signaling_behaviour.html

Here is my code

@XmlElement({
    localName: "HLSSignalingData"
})
class HLSSignalingData extends XmlObject {

    @XmlAttribute({
        localName: "playlist"
    })
    public Playlist: string;

    @XmlContent({
        converter: {
            get: (v: string) => Buffer.from(v).toString("base64"),
            set: (v: string) => Buffer.from(v, "base64").toString(),
        }
    })
    public Content: string;
}

const data = new HLSSignalingData();
data.Playlist = "media";
data.Content = `#EXT-X-KEY:METHOD=SAMPLE-AES,KEYID=0x10000000100010001000100000000001,URI="data:text/plain;base64,AAAAPXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAB0aDXdpZGV2aW5lX3Rlc3QiDHRlc3QgY29udGVudA==",KEYFORMAT="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",KEYFORMATVERSIONS="1"`;

console.log(data.toString());

// <HLSSignalingData playlist="media">I0VYVC1YLUtFWTpNRVRIT0Q9U0FNUExFLUFFUyxLRVlJRD0weDEwMDAwMDAwMTAwMDEwMDAxMDAwMTAwMDAwMDAwMDAxLFVSST0iZGF0YTp0ZXh0L3BsYWluO2Jhc2U2NCxBQUFBUFhCemMyZ0FBQUFBN2UrTHFYbldTczZqeUNmYzFSMGg3UUFBQUIwYURYZHBaR1YyYVc1bFgzUmxjM1FpREhSbGMzUWdZMjl1ZEdWdWRBPT0iLEtFWUZPUk1BVD0idXJuOnV1aWQ6ZWRlZjhiYTktNzlkNi00YWNlLWEzYzgtMjdkY2Q1MWQyMWVkIixLRVlGT1JNQVRWRVJTSU9OUz0iMSI=</HLSSignalingData>

@tshaji
Copy link
Author

tshaji commented Mar 3, 2023

Hello Miroshin Stepan,
I appreciate your reply. It solved our problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants