Javascript:Safari中的XML getElementsByTagName不返回元素

时间:2015-10-04 23:07:49

标签: javascript xml safari

这是我的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不是对象

我试过了:

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

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

<TRString>xfsadxzcsdf</TRString>

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

1 个答案:

答案 0 :(得分:1)

Safari中textContent为你工作吗?

如果是这样,当textContent不可用时,您可以使用innerHTML

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