XML getElementsByTagName在Safari中不返回元素

Javascript: XML getElementsByTagName in Safari not return elements

本文关键字:返回 元素 Safari getElementsByTagName XML      更新时间:2023-09-26

这是我的XML的一部分:

<TextLine Version="2" objectID="3" persistentID="6">
    <BaseProperties Version="5">
        <txBase>665.249</txBase>
        <XPos>221.205</XPos>
        <angle>0</angle>
        <verticalText>false</verticalText>
        <objectLeading>0</objectLeading>
    </BaseProperties>
    <EnclosingObjectType>block</EnclosingObjectType>
    <Alignment>center</Alignment>
    <TRString>xfsadxzcsdf</TRString>
    <RunLengthEncodedCharacterAttributes>
        <CharacterAttributes RunCount="13" StyleRef="4098" TextRef="4096" TXKerning="0" TXPostKerning="0" BaselineShifting="0" />
    </RunLengthEncodedCharacterAttributes>
    <tagName></tagName>
</TextLine>

例如我把它放在xmlString,在Safari中:

var parser = new DOMParser();
var xmlObject = parser.parseFromString(xmlString, 'text/xml');
console.log(xmlObject.getElementsByTagName('TRString')[0].innerHTML);
TypeError: undefined is not a object

I tried:

console.log(xmlObject.getElementsByTagName('TRString')[0]); 

得到的不是#element而是string。在这个例子中应该是:

<TRString>xfsadxzcsdf</TRString>

我在Chrome中没有这个问题。我知道这不难解决。但是我想知道谁更标准?

textContent在Safari工作吗?

如果是,你可以使用textContent,当innerHTML不可用…

var xmlValue = xmlObject.getElementsByTagName('TRString')[0].innerHTML ||
               xmlObject.getElementsByTagName('TRString')[0].textContent;