Jump to content

Recommended Posts

Posted

I need to know encoding of  xml file from its declaration using some .method without need of turning object to text and second reading of file from disk

I tried some, but get only blank strings (no errors)

$oXML = ObjCreate("Msxml2.DOMDocument.6.0")
    $oXML.Async = False
    $oXML.ValidateOnParse = True
    $oXML.load($sPathToXML)

    $sEncoding = $oXML.Xml.XmlDeclaration.getAttribute("encoding").text
    ConsoleWrite("$sEncoding = "&$sEncoding & @CRLF)

    $sEncoding = $oXML.Xml.getEncoding.text
    ConsoleWrite("$sEncoding = "&$sEncoding & @CRLF)

    $sEncoding = $oXML.Xml.getCharacterEncodingScheme().text
    ConsoleWrite("$sEncoding = "&$sEncoding & @CRLF)

 

Posted (edited)

http://stackoverflow.com/questions/22062587/get-data-within-a-processing-instruction-tag-in-xml

Loop through, and look for a specific node type...google to get what the exact id is for the node type.

Edited by jdelaney
IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.
Posted

Xmm... i get error on .getDocumentElement()  or  .getChildNodes() if first scipped

$oXML = ObjCreate("Msxml2.DOMDocument.6.0")
    $oXML.Async = False
    $oXML.ValidateOnParse = True
    $oXML.load($sPathToXML)

    $oNodeList =  $oXML.getDocumentElement().getChildNodes()
    for $i = 0 to $oNodeList.getLength() - 1
        $oNode = $oNodeList.item($i)

        ConsoleWrite($oNode.getNodeName() & @CRLF)
        ConsoleWrite($oNode.getTextContent() & @CRLF)
        ConsoleWrite("----------------------" & @CRLF)
        if $oNode.getNodeType() = $oNode.PROCESSING_INSTRUCTION_NODE Then
            ConsoleWrite($oNode.getNodeType() & @CRLF)
            ConsoleWrite($oNode.getNodeName() & @CRLF)
            ConsoleWrite($oNode.getTextContent() & @CRLF)
        EndIf
    Next

 

Posted

Try my rewriten version. 

Look in download section. 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

  • 2 weeks later...
Posted

@Iczer please provide any XML example data.

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted

xmm... any xml file with written declaration will go... or you have something in mind?

like this :

<?xml version="1.0" encoding="utf-8"?>

<?xml version="1.0" encoding="utf-16"?>

<?xml version="1.0" encoding="ISO-8859-1"?>

 

<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Title>Title - Name</Title>
  <Description>Testing</Description>
  <WebPageUrl>http://test.com</WebPageUrl>
  <SkipHours />
  <SkipDays />
  <Items>
    <Title>Item title 01</Title>
    <Link>http://test.com/i-01/</Link>
    <Guid isPermaLink="false">http://test.com/?p=100</Guid>
    <Description>some text</Description>
    <PubDate>2011-09-10T09:58:42+04:00</PubDate>
    <IsDateFromFeed>true</IsDateFromFeed>
    <ParseDate>2011-09-10T10:42:06.890625+04:00</ParseDate>
    <Subject>testing</Subject>
    <IsRead>true</IsRead>
    <CommentsUrl>http://test.com/i-01/#comments</CommentsUrl>
    <NumberOfComments>33</NumberOfComments>
    <Author>test</Author>
    <CommentRss>http://test.com/i-01/feed/</CommentRss>
  </Items>
  <Items>
    <Title>Item title 01</Title>
    <Link>http://test.com/i-02/</Link>
    <Guid isPermaLink="false">http://test.com/?p=200</Guid>
    <Description>some text</Description>
    <PubDate>2011-09-10T09:58:42+04:00</PubDate>
    <IsDateFromFeed>true</IsDateFromFeed>
    <ParseDate>2011-09-10T10:42:06.890625+04:00</ParseDate>
    <Subject>testing</Subject>
    <IsRead>true</IsRead>
    <CommentsUrl>http://test.com/i-02/#comments</CommentsUrl>
    <NumberOfComments>33</NumberOfComments>
    <Author>test</Author>
    <CommentRss>http://test.com/i-02/feed/</CommentRss>
  </Items>
</rss>

 

Posted

Hello. 

 

try this:

$sEncoding=$oXML.FirstChild().Attributes.GetNamedItem("encoding").Value

Saludos

 

Posted

Oh.
I had a quick nap, and solution came to us from forum ;)

Thanks @Danyfirex

Here we have complete example:

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...